Apache spark 在通过rdd.collect()循环时创建新的Spark数据帧
我有一个Spark数据帧Apache spark 在通过rdd.collect()循环时创建新的Spark数据帧,apache-spark,pyspark,apache-spark-sql,pyspark-dataframes,Apache Spark,Pyspark,Apache Spark Sql,Pyspark Dataframes,我有一个Spark数据帧df2。我正在为df2.rdd.collect()中的行执行: 询问如何帮助: 从df2中获取所有行,添加一个新列RESPONSE,并创建一个新的数据框df3 这就是两个数据帧的外观 您可以通过添加新字段RESPONSE来更新for循环中的每一行,以创建一个新的rdd3,从中创建数据帧df3: rdd3 = [] for row in df2.rdd.collect(): # other staff here api_response = 200 #
df2
。我正在为df2.rdd.collect()中的行执行:
询问如何帮助:
从df2
中获取所有行,添加一个新列RESPONSE
,并创建一个新的数据框df3
这就是两个数据帧的外观
您可以通过添加新字段
RESPONSE
来更新for循环中的每一行,以创建一个新的rdd3
,从中创建数据帧df3
:
rdd3 = []
for row in df2.rdd.collect():
# other staff here
api_response = 200 # set the one from Sharepoint
rdd3.append(Row(**row.asDict(), RESPONSE=api_response))
df3 = spark.createDataFrame(rdd3, df2.columns + ["RESPONSE"])
df3.show()
#+------------+-------+------+-----------+--------+
#|PROGRAM_NAME| ACTION|VALUE1| STATUS|RESPONSE|
#+------------+-------+------+-----------+--------+
#| PROG1|ACTION1| 11|IN PROGRESS| 200|
#| PROG2|ACTION2| 12| NEW| 200|
#| PROG3|ACTION1| 20| FINISHED| 200|
#| PROG4|ACTION4| 14|IN PROGRESS| 200|
#| PROG5|ACTION1| 20| NEW| 200|
#+------------+-------+------+-----------+--------+
获取错误类型错误:uuu call_uuuu()获取了一个意外的关键字参数“PROGRAM_NAME”@Avi我能够在spark(版本3和2.4)中运行此代码而没有任何错误。您是否在不添加逻辑的情况下尝试了此代码?在从pyspark.sql导入行调用后工作
rdd3 = []
for row in df2.rdd.collect():
# other staff here
api_response = 200 # set the one from Sharepoint
rdd3.append(Row(**row.asDict(), RESPONSE=api_response))
df3 = spark.createDataFrame(rdd3, df2.columns + ["RESPONSE"])
df3.show()
#+------------+-------+------+-----------+--------+
#|PROGRAM_NAME| ACTION|VALUE1| STATUS|RESPONSE|
#+------------+-------+------+-----------+--------+
#| PROG1|ACTION1| 11|IN PROGRESS| 200|
#| PROG2|ACTION2| 12| NEW| 200|
#| PROG3|ACTION1| 20| FINISHED| 200|
#| PROG4|ACTION4| 14|IN PROGRESS| 200|
#| PROG5|ACTION1| 20| NEW| 200|
#+------------+-------+------+-----------+--------+