result.parquet"合并多个 Parquet 文件?-6ren"> result.parquet"合并多个 Parquet 文件?-我已经使用 pyspark 创建了多个 parquet 文件,现在我正在尝试将所有 parquet 文件合并为 1 个。我能够合并这些文件,但是在读取生成的文件时,我遇到了错误。以前有人遇到过这个问题-6ren">
gpt4 book ai didi

apache-spark - 为什么我不能使用 "cat file1.parquet file2. parquet > result.parquet"合并多个 Parquet 文件?

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

我已经使用 pyspark 创建了多个 parquet 文件,现在我正在尝试将所有 parquet 文件合并为 1 个。我能够合并这些文件,但是在读取生成的文件时,我遇到了错误。以前有人遇到过这个问题吗?

最佳答案

您不能简单地使用 cat 连接 Parquet 文件,因为它们是在页脚中带有“目录”的二进制文件。要合并两个文件,您必须将它们都读入并写出一个全新的文件。这可以使用 parquet-tools 中的 merge 命令轻松完成。

使用 cat 合并两个 Parquet 文件不起作用的技术背景归结为一个事实,即没有页脚的 Parquet 文件是无用的。每个Parquet文件大致由以下结构组成:

RowGroup(nrows=..)
Column with nrows
Column with nrows
..
RowGroup(nrows=..)
..
..
Footer
Schema (tells you the type of the columns)
total_nrows
Location of RowGroups in the file

如果您cat 将两个文件放在一起,您将只能看到这两个文件的最后一个页脚。此外,如果用于读取文件的库进行一些完整性检查,它会意识到您的文件以某种方式损坏并完全出错。

关于apache-spark - 为什么我不能使用 "cat file1.parquet file2. parquet > result.parquet"合并多个 Parquet 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64739759/

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