我有一个分区,其中包含几个镶木文件,出于某种原因,所有字符串都保存为二进制,而其余分区上的字符串则存储为字符串类型。
我知道设置属性spark.sql.parquet.binaryAsString = true可以解决问题,但是有几个人使用此数据集,因此该信息需要传输给每个人,这可能很复杂。除此之外,出于一致性的原因,所有架构都应该相同。
我尝试使用属性spark.sql.parquet.binaryAsString = true读取该分区,当我打印架构时,我确认所有二进制文件都被解释为字符串。然后,我将该数据帧保存为镶木地板,但所有字符串均保存为二进制。
你们知道如何进行这种数据类型转换,为什么将属性spark.sql.parquet.binaryAsString设置为true时将字符串保存为二进制?
谢谢!
答案 0 :(得分:0)
确定要正确阅读架构吗?在底层,实木复合地板采用诸如字符串之类的逻辑类型,并将它们映射为诸如二进制之类的原始类型。
https://parquet.apache.org/documentation/latest/
这些是官方支持的原始类型。