将多个火花数据框列转换为具有列表类型的单列
Posted
技术标签:
【中文标题】将多个火花数据框列转换为具有列表类型的单列【英文标题】:Converting multiple spark dataframe columns to a single column with list type 【发布时间】:2019-04-17 08:35:04 【问题描述】:我有一个如下所示的 Pyspark 数据框。
Time A B C D
06:37:14 2 3 4 5
我想为所有行将其转换为这样。我不想使用 Pandas 来完成这项工作。新的列类型应该是列表类型。
Time Features
06:37:14 [2,3,4,5]
如何使用 Pyspark 做到这一点?
【问题讨论】:
如果您有预定义的列数,您可以简单地连接这些值 【参考方案1】:正如我在评论中所描述的,当您有固定数量的列时,您可以提前知道,您可以简单地将新列中的值与 withColumn
组合起来,如果您想要一个数组,您可以使用 @987654322 @
df1= sqlContext.createDataFrame([("06:37:14", '2', '3', '4', '5')], ['Time', 'A', 'B', 'C', 'D'])
df1.withColumn("Features", array("A","B","C","D")).drop("A","B","C","D").show(truncate=False)
输出:
+--------+------------+
|Time |Features |
+--------+------------+
|06:37:14|[2, 3, 4, 5]|
+--------+------------+
【讨论】:
以上是关于将多个火花数据框列转换为具有列表类型的单列的主要内容,如果未能解决你的问题,请参考以下文章