标签: apache-spark apache-spark-sql spark-dataframe parquet
如果有人调用df.write.parquet(destination),DataFrame架构(即StructType信息)是否与数据一起保存?
df.write.parquet(destination)
StructType
如果镶木地板文件是由除Spark以外的其他程序生成的,那么sqlContext.read.parquet如何找出DataFrame的架构?
sqlContext.read.parquet
答案 0 :(得分:1)
Parquet个文件会自动保留原始数据的架构。因此,如果它的Spark或其他系统写入/读取数据,则没有区别。
如果在保存时使用一列或多列对数据进行分区,则这些列的数据类型将丢失(因为信息存储在文件结构中)。这些数据类型可以在Spark读取时自动推断(目前只支持数字数据类型和字符串)。
可以通过将spark.sql.sources.partitionColumnTypeInference.enabled设置为false来关闭此自动推理,这将使这些列作为字符串读取。有关详细信息,请参阅here。
spark.sql.sources.partitionColumnTypeInference.enabled