我想使用impala计数表中的总记录并将其存储到文件中,但不确定如何执行

时间:2018-10-17 17:13:25

标签: python shell hive hiveql impala

我在文件中有一个表列表:tables.txt
内容是:

db.tab1
db.tab2

,依此类推 现在,我将其传递给函数并计算每个表中的记录数。

def rec_count(table_name):
    impala_cmd_cnt = "impala-shell -i %s -q  'select count(*) from %s'"%(impala_node,table_name)
    impala_cmd_res = os.system(impala_cmd_cnt)

impala_cmd_res包含执行代码,即0表示成功,非零表示失败。
但是我想将表的计数存储在变量中。该怎么做?

1 个答案:

答案 0 :(得分:0)

所以我找到了答案。我能够使用以下命令获得上述命令的输出 subprocess module

show_create = "impala-shell -i  %s -q 'show create table %s'" % (impala_node, table_name)
        impala_show_cre_res = subprocess.Popen(show_create, stdout=subprocess.PIPE, shell=True)
        create_out = impala_show_cre_res.communicate()

create_out包含输出。因此,我使用正则表达式从输出中删除了所需的内容。