在Pyspark中,我有2个框架。第一个框架说df1是从模式创建的空框架。第二个框架df2是从csv文件填充的非空框架。现在我想合并,以便涵盖所有以下场景。
1.如果两个嵌套框包含相同的if列数,则将它们合并。
1.如果第二个框架包含其他列,则删除这些列
1.如果第二个框架包含较小的列,则使用空值填充这些列。
我试着遍历空的框架列的field属性。schema =一些列的模式
for field in scehma.fields:
if field.name in df2.columns:
final_df = df1.withColumn(field.name, df2[field.name].cast(field.dataType))
字符串
2条答案
按热度按时间8mmmxcuj1#
基本上,您有一个包含A、B和C列的输入架构和一个包含A、B和D列的引用架构。您希望输出架构通过删除C列并添加“NULL”列D来匹配此“引用”架构。
假设
df_ref
是你的参考框架,df
是你的csv文件。字符串
xjreopfe2#
你可以在PySpark中使用
join
操作来实现所需的合并。下面是一个示例代码片段,涵盖了你提到的所有场景:字符串