gpt4 book ai didi

apache-spark - 如何使用 Spark 修复 Parquet 文件分区中的不一致模式

转载 作者:行者123 更新时间:2023-12-05 04:03:20 24 4
gpt4 key购买 nike

我是 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

我有大量分区文件,要检查每个文件以查找模式是否相同,修复每个文件可能效率不高。是否有一种简单的方法来强制执行所有文件都将转换为的架构,或者您是否真的必须遍历每个 Parquet 文件并更改架构?

使用 Spark 2.3.1

谢谢。

最佳答案

您可以尝试两种选择。

  1. 您使用“mergeSchema”选项合并具有不同架构的两个文件 https://spark.apache.org/docs/2.3.1/sql-programming-guide.html#schema-merging

  2. 遍历每个单独的文件,在读取时使用 inferSchema,然后显式转换为公共(public)模式并写回另一个位置

关于apache-spark - 如何使用 Spark 修复 Parquet 文件分区中的不一致模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53603400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com