配置单元中的多行JSON文件查询

时间:2019-01-31 17:52:41

标签: json hive amazon-athena

我了解大多数 JSON SerDe格式期望.json文件每行存储一条记录。

我有一个S3存储桶,该存储桶带有多行缩进的.json文件(不控制源代码),我想使用Amazon Athena查询(尽管我认为这通常也适用于Hive)

  1. 那里是否存在SerDe格式,可以解析多行缩进的.json文件?
  2. 如果没有 SerDe格式,请执行以下操作:
    • 是否有处理此类文件的最佳实践?
      • 我是否打算使用其他工具(如python)将这些记录弄平?
    • 是否存在编写自定义SerDe格式的标准方法,所以我可以自己编写一个?

示例文件正文:

[
  {
    "id": 1,
    "name": "ryan",
    "stuff: {
      "x": true,
      "y": [
        123,
        456
      ]
    },
  },
  ...
]

1 个答案:

答案 0 :(得分:0)

不幸的是,没有支持多行JSON内容的Serde。有专门的CloudTrail Serde支持类似于您的格式,但是仅对CloudTrail JSON格式进行了硬编码-但至少表明它在理论上是可能的。不过,目前尚无法编写自己的Serdes以便与Athena一起使用。

您将无法在Athena上使用这些文件,必须先使用EMR,Glue或其他工具才能将其重新格式化为JSON流文件。