合并具有不同架构的两个镶木文件

时间:2018-09-06 15:45:32

标签: python dataframe parquet databricks

我有两个镶木地板文件,镶木地板A有137列,镶木地板B有110列。实木复合地板文件包含表的整个历史记录。因此,镶木地板A具有表的整个历史记录的所有字段。今天我输入的所有值都是Parquet B,并且删除了17列。我想将实木复合地板A与实木复合地板B结合起来,但是它们没有相同数量的列。所以每次都会失败。

我尝试了mergeSchema,但是失败了。是否可以将缺少的列添加到镶木地板B中并添加空值。然后建立工会?

1 个答案:

答案 0 :(得分:0)

我建议您将两个镶木地板文件作为数据帧加载到Spark中,并使用转换来匹配数据帧的架构。根据您的描述,听起来好像您希望对Parquet A(较大的表)进行转换,使其与Parquet B的架构匹配。 “放置”列功能是完成此操作的直接方法 [docs]

这是我写的一个示例,其中镶木地板A有5列,镶木地板B有4列。

显示两个表(数据框)的架构: schema print

删除多余的列并创建两个表(数据框)的并集: union