Hive 在后台执行配置单元查询

Hive 在后台执行配置单元查询,hive,Hive,当查询如下所示时,如何在后台执行配置单元查询 从表1中选择count(1),其中column1='value1'我可以用双引号替换单引号来解决此问题。现在修改后的语句看起来像 ./hive-e'从表1中选择COUNT(1),其中Column1=“Value1”;'True@Koushik!很高兴你发现了这个问题。 在查询中,由于单引号不明确,bash无法形成配置单元查询 hive -e 'SELECT COUNT(1) FROM Table1 WHERE Column1 = "'"Value1

当查询如下所示时,如何在后台执行配置单元查询


从表1中选择count(1),其中column1='value1'我可以用双引号替换单引号来解决此问题。现在修改后的语句看起来像


./hive-e'从表1中选择COUNT(1),其中Column1=“Value1”;'

True@Koushik!很高兴你发现了这个问题。 在查询中,由于单引号不明确,bash无法形成配置单元查询

hive -e 'SELECT COUNT(1) FROM Table1 WHERE Column1 = "'"Value1"'";'
虽然
从表1中选择COUNT(1),其中Column1='Value1'
在配置单元中有效

$hive-e'从表1中选择COUNT(1),其中Column1='Value1';'无效

最好的解决方案是对Value1使用双引号

hive -e 'SELECT COUNT(1) FROM Table1 WHERE Column1 = "Value1";'
或者通过在双引号中包含单引号,使用快速且脏的解决方案

hive -e 'SELECT COUNT(1) FROM Table1 WHERE Column1 = "'"Value1"'";'

这将确保配置单元查询的格式正确,然后相应地执行。我不会建议采用这种方法,除非您迫切需要一个报价;)

创建一个名为example的文档

vi example
在文档中输入查询并保存

create table sample as
Select count(1) from table1 where column1='value1';
现在使用以下命令运行文档:

hive -f example 1>example.error 2>example.output &
你会得到结果的

[1]

现在,否认这个过程:

否认

现在,进程将在后台运行。如果您想知道输出的状态,可以使用

tail -f example.output

我认为1>example.error是保存示例中编写的查询的输出。