mau*_*zio 5 json amazon-web-services amazon-athena
我有一个简单的JSON文件:
{'oldname':'mau'}
Run Code Online (Sandbox Code Playgroud)
在AWS Athena中,我希望阅读此文件并创建匹配表t
CREATE EXTERNAL TABLE IF NOT EXISTS stats_json.t (
`oldname` string
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = '1'
) LOCATION 's3://mybucket/stats/';
Run Code Online (Sandbox Code Playgroud)
然后我尝试查询:
select * from t limit 10;
Run Code Online (Sandbox Code Playgroud)
并得到一个错误:
查询bceb274d-309f-40d5-a893-570de5f4ca4e失败,错误代码为HIVE_CURSOR_ERROR:行不是有效的JSON对象 - JSONException:缺少值1 [字符2行1]
我哪里出错了?
mau*_*zio 11
我得到了它的工作,所以要回答我自己的问题,问题是与JSON文件的格式.似乎AWS Athena(以及org.openx.data.jsonserde.JsonSerDe)相当挑剔:它读取的JSON文件的格式.
每个JSON记录必须完全在1行文本上,键和值之间没有空格.
在Python中,我生成了JSON记录,如下所示:
import json
dStatsRecord = {} # a valid json dict
with open('myfile.json', 'r') as oFile:
json.dump(dStatsRecord, oFile, separators=(',', ':'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2514 次 |
| 最近记录: |