我正试图改变我在网上找到的一个数据管道脚本-https://github.com/amazon-archives/data-pipeline-samples/blob/master/samples/dynamo-db-export-as-csv/ddb-to-csv.json
脚本将从dynamodb表中获取所有数据,并将其作为csv插入s3。
有一个配置单元脚本为我重新Map列,但我以前从未使用过配置单元,对如何使用它没有很好的理解。
下面是有问题的Hive脚本
drop table if exists raw_data;
CREATE EXTERNAL TABLE raw_data(`device_uuid` string, `ts` int, `device_vendor_id` string, `drone_id` string, `rssi` int, `venue_id` string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.dynamodb.DynamoDBExportSerDe'
LOCATION \"#{input.directoryPath}/#{format(@scheduledStartTime,'YYYY-MM-dd_hh.mm')}\"
TBLPROPERTIES (\"dynamodb.column.mapping\"=\"device_uuid:device_uuid,ts:ts,device_vendor_id:device_vendor_id,drone_id:drone_id,rssi:rssi,venue_id:venue_id\");
drop table if exists csv_data;\ncreate table csv_data (`device_uuid` string, `ts` number, `device_vendor_id` string, `drone_id` string, `rssi` number, `venue_id` string)
row format delimited\nfields terminated by ',' lines terminated by '\\n'\nlocation '#{output.directoryPath}/';
insert overwrite table csv_data select * from raw_data;
当我运行这个脚本时,我得到以下错误 Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: MetaException(message:org.apache.hadoop.hive.serde2.SerDeException Unsupported type: int)
在阅读了hive文档之后,我相信int是一个有效的类型,但是看起来我一定是误读了什么。
我不确定我是否需要使用这种类型 number
因为这是dynamodb类型,所以我决定替换所有 int
类型 number
但我说了一个错误 cannot recognize input near 'number' ',' 'device_vendor_id' in column type
暂无答案!
目前还没有任何答案,快来回答吧!