我正在整理类似下面的内容,然后尝试从我的结构中找到具有最高价值的内容。
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函数如何找出如何确定max。我使用嵌套结构的原因是因为当所有内容都在同一结构中时,它似乎使用num1而不是下一个数字来实现max函数。
答案 0 :(得分:1)
按字典顺序对StructTypes
进行比较-从左到右逐字段进行比较,所有字段都必须递归排序。因此,在您的情况下:
它将比较该结构的第一个元素。
由于第二个字段也很复杂,因此它将再次从点1开始重复此过程,首先比较time
个字段。
请注意,如果顶级num1
字段相等,则可以评估嵌套的num1
,因此在实践中不会影响排序。