0

将 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 ALTERand的事情SET DEFAULT。任何指针将不胜感激。

4

1 回答 1

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
于 2013-08-20T09:57:22.890 回答