将多个火花数据框列转换为具有列表类型的单列

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]|
+--------+------------+

【讨论】:

以上是关于将多个火花数据框列转换为具有列表类型的单列的主要内容,如果未能解决你的问题,请参考以下文章

将列表转换为pyspark中的数据框列

将字典列表的 Python 数据框列转换为具有单个元素的列

熊猫数据框列有带逗号的字符串如何将其转换为列表[关闭]

如何将多索引列转换为熊猫数据框的单索引列?

将数据框列转换为字符串列表[重复]

将 Pyspark 数据框转换为具有实际值的列表