【发布时间】:2019-04-01 07:47:01
【问题描述】:
我有 2 个 PySpark 数据帧(DF1 和 DF2),并希望循环遍历其中的一些列(colA、colB 来自 DF1;colZ 来自 DF2)两个数据框并获得不同的值。
DF1:
colA colB colC
1 1 A
3 1 Y
DF2:
colX colY colZ
1 1 A21
3 4 Y33
输出:
column value
colA 1
colA 3
colB 1
colZ A21
colZ Y33
此方法有效,但尝试创建 for 循环并收集结果不同的值不起作用..(因为我有超过 50 个数据帧)
df_combined = DF1.select('colA').dropDuplicates(['colA']).withColumn("new_column",lit("colA")).union(DF1.select('colB').dropDuplicates(['colB']).withColumn("new_column", lit("colB"))).union(DF2.select('colZ').dropDuplicates(['colZ']).withColumn("new_column", lit("colZ")))
df_combined.withColumnRenamed("colA", "column").withColumnRenamed("new_column", "value").show()
【问题讨论】:
标签: python pandas dataframe pyspark pyspark-sql