hadoop - 如何为 DynamoDb Amazon 控制台导出映射 Hive 中的字段?

标签 hadoop hive amazon-dynamodb elastic-map-reduce amazon-emr

我正在尝试将使用“导入/导出”工具从 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/

相关文章:

hadoop - "INFO : Tez session hasn' t 尚未创建。开场“挂

hadoop - Hive索引重建与PostgreSQL相比太慢

apache-spark - Hive无法读取Spark生成的分区 Parquet 文件

amazon-web-services - 我们如何在 Cloudformation 模板中将相同的标签使用到两个 AWS::DynamoDB::Table 中

amazon-dynamodb - 如何在 Dynamoose/DynamoDB 中建立关系模型?

amazon-dynamodb - 是否可以在 DynamoDB 中进行条件放置或更新?

java - 在 mapreduce 中从 HDFS 读取大图像

java - 用于创建Hadoop存档的Java代码

java - 获取 hadoop 中已完成和退役作业的详细信息

hive - 我们如何知道一个表是托管表还是外部表?