Spark 求最大值最小值

本文介绍了一种使用Apache Spark来计算数据集中的最大值和最小值的方法。通过定义一个函数maxMinValues,该函数接收一个包含整数对的RDD,并返回一个包含最大值和最小值的元组。首先从文本文件加载数据,然后将每行数据转换为键值对,接着按键分组并对每个组的数据进行迭代以找到最大值和最小值。

SPARK求最大值最小值

  def maxMinValues: RDD[(Int,Int)] ={
    val sc = SparkUtil.sparkLocal()
    sc.setLogLevel("DEBUG")
    val data = sc.textFile("",1)
    val num =data.flatMap{line=>
      line.split(",")
    }.filter(x=>x.trim().length>0).map(x=>("key",x.toInt))
    num.groupByKey()
      .map{line=>
    var maxValue:Int = Integer.MAX_VALUE
    var minValue:Int = Integer.MIN_VALUE
    for(x<-line._2) {
      if (x>maxValue){
        maxValue = x
      }
      if(x<minValue){
        minValue=x
      }
    }
        (maxValue,minValue)
    }
在 NumPy 中,获取数组中最小值位置的方法可以通过 `numpy.argmin` 函数实现。该函数返回数组中最小值所在的索引位置,默认情况下会将数组展平后查找最小值的索引。如果需要沿特定轴查找最小值的位置,可以通过设置 `axis` 参数来指定轴向。 例如,以下代码展示了如何使用 `numpy.argmin` 查找数组中最小值的索引: ```python import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) min_index = np.argmin(arr) print("最小值的索引:", min_index) ``` 上述代码中,`min_index` 的值为 `0`,表示最小值 `1` 位于展平后的数组第一个位置。如果需要按行或列查找最小值的索引,可以指定 `axis` 参数: ```python min_index_axis0 = np.argmin(arr, axis=0) min_index_axis1 = np.argmin(arr, axis=1) print("按列查找最小值的索引:", min_index_axis0) print("按行查找最小值的索引:", min_index_axis1) ``` 输出结果为: ``` 按列查找最小值的索引: [0 0 0] 按行查找最小值的索引: [0 0 0] ``` 这表明在每一列和每一行中,最小值都位于第一个位置[^2]。 ### 多维数组中的最小值位置获取 对于多维数组,如果需要获取最小值在原始数组中的具体位置(行和列),可以结合 `numpy.unravel_index` 函数使用。该函数可以将展平后的索引转换为原始数组中的多维索引。 示例代码如下: ```python import numpy as np arr = np.array([[10, 50, 30], [40, 20, 60]]) flat_index = np.argmin(arr) multi_index = np.unravel_index(flat_index, arr.shape) print("最小值在多维数组中的索引:", multi_index) ``` 输出结果为: ``` 最小值在多维数组中的索引: (0, 0) ``` 这表明最小值位于数组的第一行第一列[^4]。 ### 小结 通过 `numpy.argmin` 可以高效获取数组中最小值的索引,结合 `numpy.unravel_index` 可进一步获得多维数组中的具体位置。这些方法适用于一维和多维数组,并支持沿指定轴的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值