spark数据框collect_set flatmap

时间:2017-09-21 17:36:55

标签: apache-spark spark-dataframe

我有一个DataFrame,它映射到如下所示的案例类。

case class Data(key :String, tokens : List[String], anothercol : String)

我想获得按密钥分组的不同标记。如果令牌不是列表,我可以这样做:

dataDF.groupBy($"key").agg(collect_set($"tokens")) 

我会变得与众不同但是我会怎么做?

提前致谢

1 个答案:

答案 0 :(得分:0)

一个建议是在Hive中使用Lateral explode。我们的想法是从标记列表中的每个元素创建一行。然后你可以使用agg和collect_set。

你可以写一个sql来实现这个