4
試用AWS Athena。我試圖從一個S3桶具有文件結構,像這樣創建一個表:AWS雅典娜S3存儲桶上有一些JSON文件
my-bucket/
my-bucket/group1/
my-bucket/group1/entry1/
my-bucket/group1/entry1/data.bin
my-bucket/group1/entry1/metadata
my-bucket/group1/entry2/
my-bucket/group1/entry2/data.bin
my-bucket/group1/entry2/metadata
...
my-bucket-group2/
...
只有metadata
文件是JSON文件。每一個看起來是這樣的:
{
"key1": "value1",
"key2": "value2",
"key3": n
}
所以我試圖創建一個表:
CREATE EXTERNAL TABLE example (
key1 string,
key2 string,
key3 int
)
ROW FORMAT serde 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION 's3://my-bucket/'
的創建查詢成功了,但是當我嘗試查詢:
SELECT * FROM preserved_recordings limit 10;
我得到一個錯誤:
Query 93aa62d6-8a52-4a5d-a2fb-08a6e00181d3 failed with error code HIVE_CURSOR_ERROR: org.codehaus.jackson.JsonParseException: Unexpected end-of-input: expected close marker for OBJECT (from [Source: [email protected]; line: 1, column: 0]) at [Source: [email protected]; line: 1, column: 3]
AWS Ath ENA需要全部桶中的文件在這種情況下是JSON?我不確定如果.bin文件導致遊標錯誤,或者其他事情正在發生。有沒有其他人遇到過這種情況,或者可以告訴我發生了什麼?
謝謝詹姆斯。這是在任何地方的文檔? –
不是我找到的。我不相信Hive表定義支持該概念(請參閱[11269203討論](http://stackoverflow.com/q/11269203)),並且我沒有找到Presto功能的文檔,該功能會從文件中排除文件選擇。 – James