Impala的存储值导致linux中的变量

时间:2019-03-07 16:41:44

标签: bash hive impala

我需要从下面的输出中检索239、631等,并将其存储在linux中的变量中-这是impala结果的输出。

+-----------------+
| organization_id |
+-----------------+
| 239             |
| 631             |
| 632             |
| 633             |
+-----------------+

下面是我正在运行的查询。

x=$(impala-shell -q "${ORG_ID}" -ki "${impalaserver}");

如何做到?

2 个答案:

答案 0 :(得分:0)

能否请您尝试以下。这将删除所有Input_file的重复项(即使单个id出现在1 Organization_id中,也不会再打印在其他节中)

your_command | awk -v s1="'" 'BEGIN{OFS=","} /---/{flag=""} /organization_id/{flag=1;getline;next} flag && !a[$2]++{val=val?val OFS s1 $2 s1:s1 $2 s1} END{print val}'


如果您需要打印id(在1节中出现,并且可能在organization_id的其他节中出现,然后尝试以下操作):

your_command | awk -v s="'" 'BEGIN{OFS=","} /---/{print val;val=flag="";delete a} /organization_id/{flag=1;getline;next} flag && !a[$2]++{val=val?val OFS s1 $2  s1:s1 $2 s1} END{if(val){print val}}'

答案 1 :(得分:0)

那呢:

x=$(impala-shell -B -q "${ORG_ID}" -ki "${impalaserver}")

我刚刚添加了-B选项,该选项删除了漂亮的打印件和标题。

如果需要逗号分隔的值,可以将结果通过管道传递到tr

echo $x | tr ' ' ','