Pyspark嵌套结构添加缺少的列

时间:2019-02-12 22:33:44

标签: pyspark

我在Year Month Day分区的s3存储桶中有一些镶木地板文件。以下是大多数文件的架构

root
--SchemaVersion: string (nullable = true)
--Col2 : string (nullable = true)
--Body : Struct (nullable = true) 
       --Bc1 String (nullable = true)
       --Bc2 String (Nullable = true)
       --Contact  array(nullable = true)
           element : struct(nullable = true )
                contact_address
                contact_address2

在某些文件中,缺少联系人数组,因为没有源系统提供的数据,并且拼花地板仅清除了空列,并且没有留下任何痕迹。

我正在将其加载到DataFrame中并触发一个Spark sql。如果从特定分区中选取文件,并且该文件缺少联系人,则sql失败。

如何基于某些模板向DataFrame添加列;如果联系人不存在,则将联系人结构添加到数据帧中,这将不会导致sql失败?

0 个答案:

没有答案