我试图创建和查询一个正在读取json文件的athena表,但是它被换行符阻塞了。更困难的是,它们目前是windows新行(crlf)
错误消息:
HIVE_CURSOR_ERROR: Row is not a valid JSON Object - JSONException: A JSONObject text must end with '}' at 2 [character 3 line 1]
为了可读性,我们的json看起来是这样的(每个文件一行,尽管我们有嵌套数组,这里不包括)。
{
"event" : "REQUEST",
"globalTransactionId" : "8de9e1b8-3ab0-4c3b-8b85-cae4e58257a7",
"inboundIdentifierValue" : "22",
"timeStamp" : "2020-03-19T20:36:42.864Z",
"elapsedTime" : 0
}
我的create表是这样的,如果去掉所有的换行符,它就可以工作了。
我试过openxserde和org.apache.hive.hcatalog.data.jsonserde
CREATE EXTERNAL TABLE TestA(
event string,
globaltransactionid string,
inboundidentifiervalue string,
`timestamp` string,
elapsedtime bigint
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://mybucker/test/'
有没有什么合理的方法使这个工作,或者我们必须改变文件格式?
1条答案
按热度按时间ki1q1bka1#
雅典娜要求每行有一个json文档,不支持多行文档。