[英]How to handle fields enclosed within quotes(CSV) in importing data from S3 into DynamoDB using EMR/Hive
[英]How do you export a Map data type column on DynamoDB to S3 with JSON data type using HiveQL on EMR?
有记录在DynamoDB上映射数据类型,我想使用EMR上的HiveQL将这些记录导出到具有JSON数据格式的S3。 你是怎么做到的? 可能吗?
我阅读了以下文档,但我希望信息不算什么。
我尝试了以下步骤:
在DynamoDB上创建一个表
TableName: DynamoDBTable1 HashKey: user_id
将两条记录插入DynamoDB
# record1 user_id: "0001" json: {"key1": "value1", "key2": "value2"} # record2 user_id: "0001" json: {"key1": "value1", "key2": "value2"}
从DynamoDB在EMR上创建一个表
CREATE EXTERNAL TABLE test (user_id string, json map<string, string>) STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' TBLPROPERTIES ("dynamodb.table.name" = "DynamoDBTable", "dynamodb.column.mapping" = "user_id:user_id,json:json");
将记录导出到S3
INSERT OVERWRITE DIRECTORY 's3://some-bucket/exports/' select json from test where user_id = '0001';
确认S3存储桶,但导出的数据不是JSON格式...
# Expected [ {"key1": "value1", "key2": "value2"}, {"key1": "value1", "key2": "value2"} ] # Actual key1^C{"s":"value1"}^Bkey2^C{"s":"value2"} key1^C{"s":"value1"}^Bkey2^C{"s":"value2"}
DynamoDBStorageHandler类不支持以下DynamoDB数据类型,因此它们不能与dynamodb.column.mapping一起使用:
Map,List,Boolean,Null
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.