ozz*_*acs 2 scala apache-spark apache-spark-sql
我在 Spark 中有类似下面的内容,我将其分组,然后尝试从我的结构中找到具有最高值的内容。
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)
Run Code Online (Sandbox Code Playgroud)
我不确定 max 函数如何确定最大值。我使用嵌套结构的原因是因为当所有内容都在同一结构中时,它似乎使用 num1 而不是下一个数字来创建 max 函数。
它们StructTypes按字典顺序进行比较 - 逐个字段,从左到右,并且所有字段都必须递归排序。所以在你的情况下:
它将比较结构体的第一个元素。
由于第二个字段也很复杂,因此将从第 1 点开始重复过程,这次time首先比较字段。
请注意,num1可以根据顶级num1字段是否相等来评估嵌套,因此它不会影响实践中的排序。
| 归档时间: |
|
| 查看次数: |
4707 次 |
| 最近记录: |