我有一个如下的Pyspark数据框。
Time A B C D
06:37:14 2 3 4 5
我想将其转换为所有行都这样。我不想使用Pandas完成此任务。新的列类型应为列表类型。
Time Features
06:37:14 [2,3,4,5]
如何使用Pyspark做到这一点?
答案 0 :(得分:2)
正如我在评论中所描述的,当您具有固定数量的列(事先知道)时,您可以简单地将新列中的值与withColumn
组合在一起,如果需要数组,则可以使用array
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]|
+--------+------------+