gpt4 book ai didi

scala - Spark 数据集中的 max() 和 struct()

转载 作者:行者123 更新时间:2023-12-05 09:15:18 27 4
gpt4 key购买 nike

我在 spark 中有类似下面的内容,我正在对其进行分组,然后尝试从我的结构中找到具有最高值(value)的内容。

test.map(x => tester(x._1, x._2, x._3, x._4, x._5))
.toDS
.select($"ac", $"sk", struct($"num1", struct($"time", $"num1")).as("grp"))
.groupBy($"ac", $"sk")
.agg(max($"grp")).show(false)

我不确定 max 函数如何计算出如何确定最大值。我使用嵌套结构的原因是因为当所有内容都在同一个结构中时,它似乎使用 num1 而不是下一个数字来创建 max 函数。

最佳答案

StructTypes 按字典顺序进行比较 - 逐个字段,从左到右,所有字段都必须递归排序。所以在你的情况下:

  1. 它将比较结构的第一个元素。

    • 如果元素不相等,它将返回具有更高值的结构。
    • 否则将继续第 2 点。
  2. 由于第二个字段也很复杂,所以这次它会从第 1 点开始重复过程,首先比较 time 字段。

请注意,嵌套的 num1 可以在顶级 num1 字段是否相等时进行评估,因此它不会影响实践中的顺序。

关于scala - Spark 数据集中的 max() 和 struct(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52668207/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com