df = spark.createDataFrame(
[(1, "a", 23.0), (3, "B", -23.0)],
("x1", "x2", "x3"))
我想添加新列 x4
但我在Python列表中有 Value 而不是添加到新列中,例如 x4_ls = [35.0, 32.0]
. 有没有一种向Spark数据框添加新列的最佳方法? ( note 我使用Spark 2.1)
输出应该是这样的:
## +---+---+-----+----+
## | x1| x2| x3| x4|
## +---+---+-----+----+
## | 1| a| 23.0|35.0|
## | 3| B|-23.0|32.0|
## +---+---+-----+----+
我也可以将我的列表转换为dataframe df_x4 = spark.createDataFrame([Row(**{'x4': x}) for x in x4_ls])
(但我不知道如何将数据帧连接在一起)
2 回答
感谢Gaurav Dhama给出了一个很好的答案!我用他的解决方案做了一点改动 . 这是我的解决方案,它在添加的新列
row_num
上将两个数据帧连接在一起 .我们可以在rownumbers的基础上连接如下 . 假设我们有两个数据帧df和df_x4:
outputdf是您需要的输出数据帧