我正在使用AWS Data Pipeline中的hive脚本将数据从DynamoDB传输到S3。我正在使用这样的脚本:
CREATE EXTERNAL TABLE dynamodb_table(PROPERTIES STRING,EMAIL STRING,.............)存储 ' org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' TBLPROPERTIES (" dynamodb.table.name" =" $ {DYNAMODB_INPUT_TABLE}", " dynamodb.column.mapping" = "属性:属性,EMAIL:EMAILID ....&#34); CREATE EXTERNAL TABLE s3_table( 属性字符串, 电子邮件字符串, ...... )
行格式删除字段终止于' \ t'由' \ n'
终止的线路LOCATION' $ {S3_OUTPUT_BUCKET}';
INSERT OVERWRITE TABLE s3_table SELECT * FROM dynamodb_table;
DyanmoDB表中的Properties列就像这样
属性:字符串 :{\"交易\":空,\" MinType \":空,\"折扣\":空}
它包含多个属性。我希望Properties中的每个属性都作为一个单独的列(而不仅仅是单个列中的字符串)。我想要这个架构中的输出
交易MinType折扣EMAIL
我该怎么做?
答案 0 :(得分:0)
您的“属性”列是否采用正确的JSON格式?如果是这样,看起来你可以 - https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-get_json_object