我正在尝试将使用“导入/导出”工具从 Amazon Dynamodb Web 控制台获取的 DynamoDb 导出文件加载到 Hive 中。但我无法正确映射字段,因为 DynamoDB Web 控制台“导出”工具使用的是“ETX”“STX”。
下面是一个以[LF]结尾的示例行
Elapsed[ETX]{"n":"1477"}[STX]Device[ETX]{"n":"3"}[STX]Date[ETX]{"s":"2014-03-05T12:13:00.852Z"}[STX]Duration[ETX]{"n":"8075"}[LF]
这个查询应该是什么?
CREATE EXTERNAL TABLE IF NOT EXISTS TableNameHere (creationDate string, device bigint, duration bigint, elapsed bigint)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ???This is where i got stuck???
LOCATION 's3://abcdefg/ino/2015-05-28_12.22';
更新
我已经更新了查询,但它再次不起作用。
'\002'代表STX
'\012' 为 LF
CREATE EXTERNAL TABLE IF NOT EXISTS TableNameHere (creationDate string, device bigint, duration bigint, elapsed bigint)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\002'
LINES TERMINATED BY '\012'
LOCATION 's3://abcdefg/ino/2015-05-28_12.22';
查询结果:
Elapsed{"n":"0"} Device{"n":"3"} Duration{"n":"1073876"} Date{"s":"2014-01-27T00:52:25.491Z"}
那么,现在我该如何解析这些数据呢?我需要映射字段。 我应该使用自定义 SerDe 吗?
最佳答案
我想已经有一个 SerDe 了:https://github.com/lyft/dynamodb-hive-serde
关于hadoop - 如何为 DynamoDb Amazon 控制台导出映射 Hive 中的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30509393/