【问题标题】:Finding the lowest value in a Dataframe Row in Spark在 Spark 的 Dataframe 行中查找最小值
【发布时间】:2017-04-28 01:12:39
【问题描述】:

我正在尝试从 DataFrame 中的 [row] 中找出最小值。我怎样才能做到这一点?我的数据集是这样的:

aaaa |-32566.335700000003|         27668.7725|         20183.4786|
bbbb | -3.924099999999997|  5.802000000000006|  4.988000000000004|
cccc |  951546.8948000005| -686025.1569999934| -62493.96830000022|
xxxx |-26563.328700000005| 52490.610100000005|          -5555.277|

研究:我要做的是转置上面的内容,然后对上面的行进行排序和选择作为列。请提出任何替代方法,或者使用现有的 Spark 数据集函数。

以上只是一个示例数据集,实际列数远不止于此,以获得行中的最小值。

【问题讨论】:

    标签: apache-spark apache-spark-sql apache-spark-dataset


    【解决方案1】:

    您可以通过将一行中的所有数字列作为一个列表,然后在该列表中找到最小值来做到这一点:

    val df = sc.parallelize(Seq(("a",1.0,2.0,3.0),("b",-1.0,-2.0,-3.0),("c",-1.0,0.0,1.0))).toDF("id","v1","v2","v3")
    df.show
    
    val numericCols = List("v1", "v2", "v3") // you can get these from the df.schema if you need generic approach
    
    val dfMin = df.map(r => (r.getAs[String]("id"), numericCols.map(column => r.getAs[Double](column)).min)).toDF("id", "minValue")
    dfMin.show
    

    【讨论】:

      猜你喜欢
      • 2016-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 2021-05-11
      相关资源
      最近更新 更多