簡體   English   中英

AWS Athena JSON格式失敗

[英]AWS Athena JSON format failure

我正在嘗試從此json上傳數據:

JSON-A

[
  {"name": "james", "id": 41},
  {"name": "scott", "id": 62},
  {"name": "abhi", "id": 16},
  {"name": "kevin", "id": 53},
  {"name": "beau", "id": 12},
  {"name": "shally", "id": 35},
  {"name": "jude", "id": 53},
  {"name": "jason", "id": 77},
  {"name": "hongjian", "id": 35},
  {"name": "madhur", "id": 6}
]

如果它具有父“數據”鍵,例如

JSON-B

["data":{"name": "james","id": 41"},{.....}]

那么我知道我可以做到:

CREATE EXTERNAL TABLE IF NOT EXISTS test.test (
  `data` array<struct<`name`:string,`id`:bigint>>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
  'serialization.format' = '1'
) LOCATION 's3://test-bucket/';

但是,對JSON-A應該采取什么方法?

您必須將文件保存在“ s3:// test-bucket /”中:
{"name": "james", "id": 41} {"name": "scott", "id": 62} {"name": "abhi", "id": 16} {"name": "kevin", "id": 53} {"name": "beau", "id": 12} {"name": "shally", "id": 35} {"name": "jude", "id": 53} {"name": "jason", "id": 77} {"name": "hongjian", "id": 35} {"name": "madhur", "id": 6}

由於Hive / SerDe假設您的文本文件每行包含一條記錄,因此我認為這行不通。 org.openx.data.jsonserde.JsonSerDe文檔中

  1. 每行一條記錄 -盡管我不確定您的示例在多行方面是否應為原義,但該示例的確在同一行中包含多個記錄。

重要!!! 閱讀以下內容! Json記錄每行必須是一個,即多行Json不能使用Serde。

  1. 數組示例(每行一個)-serde示例確實顯示了如何使用數組,但同樣,不是同一行中包含多個記錄的頂級數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM