【问题标题】:AWS GLUE job failure working with partitioned Parquet files in nested s3 folders使用嵌套 s3 文件夹中的分区 Parquet 文件的 AWS GLUE 作业失败
【发布时间】:2019-06-11 16:14:36
【问题描述】:

在分区 parquet 文件上运行 GLUE 作业时出现以下错误 无法推断 Parquet 的架构。必须手动指定

我已经设置了我的爬虫并成功获取了我的 parquet 文件的架构。我可以在 Athena 中查看数据。我已经在我的目标 Redshift 上手动创建了架构。

如果我的所有数据仅在一个文件夹中,我可以通过 GLUE 将文件加载到 Redshift。 但是当我指向具有嵌套文件夹的文件夹时,例如文件夹 X - 有 04 和 05 - GLUE 作业失败并显示消息 无法推断 Parquet 的架构。必须手动指定

如果我将所有这些文件放在同一个文件夹中,这有什么奇怪的?

【问题讨论】:

    标签: directory schema parquet aws-glue


    【解决方案1】:

    我在这里找到了解决方案 - 这对我有用 Firehose JSON -> S3 Parquet -> ETL Spark, error: Unable to infer schema for Parquet

    这是 ETL 粘合作业的 scala 版本

    【讨论】:

      【解决方案2】:

      如果您直接指向分区文件夹,则分区文件夹将不再是表架构中的列。最好使用谓词下推 - https://aws.amazon.com/blogs/big-data/work-with-partitioned-data-in-aws-glue/ 同时指向顶部文件夹。

      【讨论】:

      • 嗨 Sandeep,我尝试使用谓词下推,但它似乎只排除了分区,我想包括所有分区。你能否提供更多关于如何实现我所追求的细节?我有一种使用 scala 的方法,但是由于我正在用 Python 编写大部分脚本,所以我很想用 python 来实现它。
      • 那么不要使用下推谓词。但将位置保留在顶部文件夹中。我以为你只想要 04 和 05 的数据。如果没有,只需删除下推谓词部分,它将返回所有分区的数据
      • 这就是它没有返回所有分区的数据的问题,这就是为什么我提出这个问题,看看我是否需要做一些额外的调整。还是谢谢
      猜你喜欢
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2020-07-10
      • 2021-10-05
      相关资源
      最近更新 更多