gpt4 book ai didi

amazon-web-services - Amazon AWS Athena HIVE_CANNOT_OPEN_SPLIT : Error opening Hive split/Not valid Parquet file, parquet 文件使用 Athena 压缩为 gzip

转载 作者:行者123 更新时间:2023-12-05 02:58:05 30 4
gpt4 key购买 nike

我正尝试在 Amazon Athena 上培养技能。我已经成功地使用 Athena 查询了 JSON 和 Apache Parquet 格式的数据。我现在要做的是对其添加压缩 (gzip)。

我的 JSON 数据:

{
"id": 1,
"prenom": "Firstname",
"nom": "Lastname",
"age": 23
}

然后,我使用 npm 模块将 JSON 转换为 Apache Parquet 格式:https://www.npmjs.com/package/parquetjs

最后,我将获得的 parquet 文件压缩为 GZIP 格式并将其放入我的 s3 存储桶中:test-athena-personnes。

我的雅典娜表:

CREATE EXTERNAL TABLE IF NOT EXISTS personnes (
id INT,
nom STRING,
prenom STRING,
age INT
)
STORED AS PARQUET
LOCATION 's3://test-athena-personnes/'
tblproperties ("parquet.compress"="GZIP");

然后,为了测试它,我启动了一个非常简单的请求:Select * from personnes;

我收到错误信息:

HIVE_CANNOT_OPEN_SPLIT: Error opening Hive split s3://test-athena-personnes/personne1.parquet.gz (offset=0, length=257): Not valid Parquet file: s3://test-athena-personnes/personne1.parquet.gz expected magic number: [80, 65, 82, 49] got: [-75, 1, 0, 0]

有什么我没听懂或者我做得不好的地方吗?我可以在不使用 gzip 压缩的情况下请求 apache parquet 文件,但不能使用它。

提前致谢

最佳答案

Parquet文件由两部分组成[1] :

  1. 数据
  2. 元数据

当您尝试通过 Athena 读取此文件时,它会先尝试读取元数据,然后再读取实际数据。在您的情况下,您正在使用 Gzip 压缩 parquet 文件,当 Athena 尝试读取该文件时,它无法理解,因为元数据被压缩抽象化了。

因此,压缩 parquet 文件的理想方式是“在编写/创建 parquet 文件时”本身。因此,您需要在使用 parquetjs 生成文件时提及压缩代码。

关于amazon-web-services - Amazon AWS Athena HIVE_CANNOT_OPEN_SPLIT : Error opening Hive split/Not valid Parquet file, parquet 文件使用 Athena 压缩为 gzip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59371624/

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