在配置单元查询中使用不相等的符号



我需要使用'!='带有分区的配置单元查询中的符号。我试过类似的东西

from sample_table
insert overwrite table sample1
partition (src='a')
select * where act=10
insert overwrite table sample1
partition (src!='a')
select * where act=20

但它在"!="处显示错误象征我该如何替换!=

尝试在配置单元中使用rlike/regex函数来指定条件。

我认为您也可以使用not运算符<>而不是!=

partition (src!='a')-您希望Hive做什么-将"select*"结果写入任何分区而不是"a"?您可以看到,partition (src='a')意味着您正在将执行select语句后的结果写入名为"a"的表分区中。"PARTITION(a=b)"不是像"WHERE a=b"那样的条件命令,您只是在指定如何命名分区。您只需要指定另一个分区名称,所以您的查询应该看起来像:

from sample_table insert overwrite table sample1 partition (src='a') select * where act=10 insert overwrite table sample1 partition (src='b') select * where act=20;

之后,您应该在表"sample1"中看到两个新分区"a"one_answers"b",其中分别包含来自这些select * where act=10select * where act=20查询的一些数据。

我可以知道你的配置单元版本吗?尝试使用A<>B

配置单元DOCS中的描述:如果A或B为NULL,则为NULL;如果表达式A不等于表达式B,则为TRUE;否则为FALSE。

最新更新