我对pyspark有点新意。我有一个大约有5列和5条记录的火花数据框。我有5条记录的清单。 现在,我想使用withColumn将列表中的这5个静态记录添加到现有数据框中。我做到了,但它不起作用。 非常感谢任何建议。
以下是我的样本:
dq_results=[]
for a in range(0,len(dq_results)):
dataFile_df=dataFile_df.withColumn("dq_results",lit(dq_results[a]))
print lit(dq_results[a])
感谢, Sreeram
答案 0 :(得分:1)
dq_results=[]
从列表dq_results
创建一个数据框:
df_list=spark.createDataFrame(dq_results_list,schema=dq_results_col)
为df_list id添加一列(它将是行ID)
df_list_id = df_list.withColumn("id", monotonically_increasing_id())
为dataFile_df id添加一列(它将是行ID)
dataFile_df= df_list.withColumn("id", monotonically_increasing_id())
现在我们可以加入数据框df_list
和dataFile_df
。
dataFile_df.join(df_list,"id").show()
所以dataFile_df
是最终数据框
答案 1 :(得分:0)
withColumn将添加一个新列,但我想你可能想要添加Rows。试试这个:
df1 = spark.createDataFrame([(a, a*2, a+3, a+4, a+5) for a in range(5)], "A B C D E".split(' '))
new_data = [[100 + i*j for i in range(5)] for j in range(5)]
df1.unionAll(spark.createDataFrame(new_data)).show()
+---+---+---+---+---+
| A| B| C| D| E|
+---+---+---+---+---+
| 0| 0| 3| 4| 5|
| 1| 2| 4| 5| 6|
| 2| 4| 5| 6| 7|
| 3| 6| 6| 7| 8|
| 4| 8| 7| 8| 9|
|100|100|100|100|100|
|100|101|102|103|104|
|100|102|104|106|108|
|100|103|106|109|112|
|100|104|108|112|116|
+---+---+---+---+---+