我想用impala计算一个表中的总记录数并将其存储到一个文件中,但不知道怎么做

ohfgkhjo  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(249)

我有一个文件中的表列表: 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\u cmd\u res包含执行代码,即0表示成功,非0表示失败。
但我想把表的计数存储在一个变量中。怎么做?

8xiog9wr

8xiog9wr1#

所以我找到了答案。我可以使用 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()

创建包含输出的输出。所以我用regex从输出中去掉了需要的部分。

相关问题