Spark Scala - 如何为每个组创建新列,然后在 spark 数据框中分解列值
Posted
技术标签:
【中文标题】Spark Scala - 如何为每个组创建新列,然后在 spark 数据框中分解列值【英文标题】:Spark Scala - How to create new column for each group and then explode the column values in spark dataframe 【发布时间】:2017-04-07 12:52:54 【问题描述】:我的数据框如下所示 列名索引,单词
Index | words
one | col1: a, col2: b
one | col1: c, col2: d
two | col1: a, col2: b
two | col1: e, col2: f
我正在寻找如下输出 输出df列名一、二
one | two
col1: a, col2: b | col1: a, col2: b
col1: c, col2: d | col1: e, col2: f
请任何人帮我解决这个问题。我使用的是 spark 1.5.2 版本
【问题讨论】:
【参考方案1】:如果您确定每个索引值都有两个单词,您可以使用以下:
sqlContext.sql("select Index, collect_list(words)[0],collect_list(words)[1] from yourTable group by Index").show
【讨论】:
以上是关于Spark Scala - 如何为每个组创建新列,然后在 spark 数据框中分解列值的主要内容,如果未能解决你的问题,请参考以下文章
如何为 scala Iterable、spark 数据集制作编码器
Scala Spark Dataframe 创建一个新列,其中包含另一列的最大先前值和当前值