我想在将HDFS数据复制到Dynamo时设置默认范围键值。到目前为止,我有一个直接映射,其中输入是3列,DB是3列:
CREATE EXTERNAL TABLE hdfs_table (a_col string, b_col string, c_col string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
LOCATION "hdfs:///blahblah";
CREATE EXTERNAL TABLE dynamodb_table (c1 string, c2 string, c3 string)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "output_table",
"dynamodb.column.mapping" = "c1:id,c2:timestamp,c3:data");
INSERT OVERWRITE TABLE dynamodb_table SELECT * FROM hdfs_table;
我设置了一个带有范围键的新输出表,该键基本上是第四列。我想将范围键设置为一个值,该值作为参数传递给此脚本。我想我想做一些类似于SQL ALTER
和SET DEFAULT
的事情。任何指针都会受到赞赏。
答案 0 :(得分:0)
我不确定hive是否支持SQL类型Alter和Set Default命令!您可以通过插入新列以及hdfs_table列来间接尝试。例如,
INSERT into TABLE new_table SELECT hdfs_table.a_col, hdfs_table.b_col, hdfs_table.c_col,
case when([your condition]) then [set your default value] end as d_col
FROM hdfs_table