我创建了一个按日期分区的表。但是不能在where子句中使用分区。 这是过程 步骤1:
CREATE TABLE new_table (
a string,
b string
)
PARTITIONED BY (dt string);
步骤2:
Insert overwrite table new_table partition (dt=$date)
Select a, b from my_table
where dt = '$date
表已创建。
Describe new_table;
a string
b string
dt string
问题:
select * from new_table where dt='$date'
返回空集。
,而
select * from new_table
返回a,b和dt。
有谁知道这可能是什么原因?
由于
答案 0 :(得分:0)
Sahara,where子句中的分区可以正常工作。您是否有可能在谓词的RHS中指定错误的值?
您可能还希望查看/user/hive/warehouse/new_table
内的数据(默认情况下),以查看数据是否与预期的数据相符。
答案 1 :(得分:0)
尝试使用
插入Insert overwrite table new_table partition (dt=$date)
Select a, b, dt from my_table
where dt = '$date'