我是 spark 新手,在将新数据附加到分区时遇到了问题。我的管道使用 Databricks 将每日 CSV 导入 Azure Datalake(基本上是 HDFS)。我还对数据进行了一些简单的转换并删除了重复项等。但是,我注意到有时该inferSchema=True
选项并不总是最好的,有时会在分区文件之间的模式中产生不一致。然后当我去阅读所有文件时:
df = sqlContext.read.parquet("path/to/directory")
我遇到了一个问题:
Parquet column cannot be converted in file path/to/directory/file
Column: [Ndc], Expected: LongType, Found: BINARY
我有大量的分区文件,并且通过每个文件来查找架构是否相同,并且修复每个文件可能效率不高。有没有一种简单的方法来强制执行所有文件都将转换为的模式,或者您是否真的必须遍历每个镶木地板文件并更改模式?
使用火花 2.3.1
谢谢。