【发布时间】:2015-09-01 17:52:52
【问题描述】:
使用 impyla 模块,我已将 impala 查询的结果下载到 pandas 数据框,完成分析,现在想将结果写回 impala 上的表,或者至少写回 hdfs 文件。
但是,我找不到有关如何执行此操作的任何信息,甚至找不到如何通过 ssh 进入 impala shell 并从那里写入表。
我想做的事:
from impala.dbapi import connect
from impala.util import as_pandas
# connect to my host and port
conn=connect(host='myhost', port=111)
# create query to save table as pandas df
create_query = """
SELECT * FROM {}
""".format(my_table_name)
# run query on impala
cur = conn.cursor()
cur.execute(create_query)
# store results as pandas data frame
pandas_df = as_pandas(cur)
cur.close()
一旦我完成了我需要对 pandas_df 执行的任何操作,请将这些结果作为表格保存回 impala。
# create query to save new_df back to impala
save_query = """
CREATE TABLE new_table AS
SELECT *
FROM pandas_df
"""
# run query on impala
cur = conn.cursor()
cur.execute(save_query)
cur.close()
上述情况是理想的,但如果我能弄清楚如何通过 ssh 进入 impala-shell 并从 python 执行此操作,或者甚至只是将表保存到 hdfs,我会很高兴。我正在为其他用户编写此脚本,因此必须在脚本中完成所有这些工作。非常感谢!
【问题讨论】: