在impalashell中运行Python脚本

2024-09-27 22:19:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我能够运行一个文本文件,该文件包含以“;”分隔的查询在黑斑羚壳里。但是,我有一些查询需要另一个查询的结果。例如,如果Query1给我name | age | birthday,那么下面的查询类似于SELECT * FROM table1 WHERE age in (...),这些年龄来自第一个查询的年龄列

我知道您可以使用--vars选项指定,但这似乎是用于插入特定值。有没有办法创建Python脚本来处理在impala shell中运行的类似内容


Tags: 文件nameinfromagevarswhereselect
2条回答

您可以创建脚本.sh.py.???,并从impala shell运行它们

要从impala-shell类型调用linux shell命令行,请执行以下操作:

impala> shell <linux shell command>;

例如

[localhost.localdomain:21000] > shell ls -ltr /home;
[localhost.localdomain:21000] > shell hdfs dfs -ls /;

[localhost.localdomain:21000] > shell spark-submit  master yarn /home/cloudera/query.py;

[localhost.localdomain:21000] > shell /home/cloudera/check-services.sh;
Graphite: ko
Zookeeper: ko
KafkaServer: ko
    

[localhost.localdomain:21000] > shell python /home/cloudera/executable.py

我认为创建临时表在这里会有所帮助。 仅黑斑羚解决方案-
步骤0-从文件加载表。
步骤1-创建临时表tmp_表作为查询1。
步骤2:从表1中选择*的年龄(tmp_表)。
步骤3-放下表格tmp_表格。
如果所有数据都在impala表中,也可以使用子查询。
从年龄所在的表1中选择*(从查询1中选择年龄)

是的,您可以始终使用python运行impala shell查询。但它们就像一个接一个的调用脚本,根据您的需求,您可以完全在impala中完成它们

相关问题 更多 >

    热门问题