我在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失败?