Sum*_*Ela 8 python hadoop hdfs impala
使用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()
Run Code Online (Sandbox Code Playgroud)
一旦我完成了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()
Run Code Online (Sandbox Code Playgroud)
上面的场景是理想的,但是如果我能弄清楚如何ssh到impala-shell并从python中执行此操作,或者甚至只是将表保存到hdfs,我会很高兴.我将此作为其他用户的脚本编写,因此必须在脚本中完成所有这些操作.非常感谢!