Hadoop 将当前日期添加到s3表位置
我有一个配置单元脚本,可以将数据从dynamo db导出到s3。Hadoop 将当前日期添加到s3表位置,hadoop,amazon-s3,hive,Hadoop,Amazon S3,Hive,我有一个配置单元脚本,可以将数据从dynamo db导出到s3。 我正在尝试将日期放在动态创建的s3文件夹的位置。 很可能我需要蜂箱的内置功能。 我在网上搜索,找到了很多关于 (字符串dt)->并手动给出日期,但我应该自动输入 编辑 应该是这样,但我有错误,这是我当前的配置单元脚本: CREATE EXTERNAL TABLE IF NOT EXISTS tracksTable (id bigint, json binary) STORED BY 'org.apache.hadoop.hive.
我正在尝试将日期放在动态创建的s3文件夹的位置。
很可能我需要蜂箱的内置功能。 我在网上搜索,找到了很多关于 (字符串dt)->并手动给出日期,但我应该自动输入 编辑
应该是这样,但我有错误,这是我当前的配置单元脚本:
CREATE EXTERNAL TABLE IF NOT EXISTS tracksTable (id bigint, json binary)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "tablename",
"dynamodb.column.mapping" = "id:id,json:json");
SET hive.exec.dynamic.partition.mode=nonstrict;
CREATE EXTERNAL TABLE IF NOT EXISTS s3( file Array<String> )
PARTITIONED BY ( dt STRING )
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' COLLECTION ITEMS TERMINATED BY '\001' LINES TERMINATED BY '\n'
LOCATION 's3://PATH'
WHERE dt = to_date(from_unixtime(unix_timestamp()));
INSERT INTO TABLE S3
SELECT func(json) FROM tracksTable;
tracksTable(id bigint,json二进制)不存在时创建外部表
由“org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler”存储
TBLProperty(“dynamodb.table.name”=“tablename”,
“dynamodb.column.mapping”=“id:id,json:json”);
设置hive.exec.dynamic.partition.mode=nonstrict;
如果不存在,则创建外部表s3(文件数组)
分区依据(dt字符串)
行格式分隔字段由“\t”集合项终止,由“\001”行终止,由“\n”行终止
位置“s3://路径”
其中dt=截止日期(从unixtime(unix\u timestamp());
插入表S3
从tracksTable中选择func(json);
我就是这样管理的
INSERT INTO TABLE S3
PARTITION(time)
SELECT func(json),from_unixtime(unix_timestamp(),'yyyy-MM-dd') AS time FROM tracksTable;