如何在Python中使用多个变量发送给Impala以获得SQL语句

时间:2019-05-20 10:04:39

标签: python sql pandas hadoop impala

我正在使用来自基于hadoop的数据仓库中的大数据进行机器学习项目。因此,我白天使用许多不同的SQL语句。有时我会根据某些功能修改数据,然后,我需要将数据框的那些变量馈入SQL语句以从数据库中收集其他结果。

到目前为止,我已经在网络上进行了研究,但是在所有相关的答案中,您都必须在查询中将每个变量表示为?%s。但是这种方法对我来说不可行,因为有时我需要输入数百个变量,所以我不会像

select * from table where id in (?,?,?,.....,?)

我运行SQL查询的结构如下:

from impala.dbapi import connect
from impala.util import as_pandas
conn = connect(host='0.0.0.0', port=0, auth_mechanism="blank")  
impala_cursor = conn.cursor()

并运行查询

sql= '''SELECT name, id

        FROM table

        WHERE id in (---HERE COMES THE VARIABLES FROM PANDAS DATAFRAME---)
        '''
impala_cursor.execute(sql)
df_var = as_pandas(impala_cursor)

欢迎任何帮助。预先感谢!

0 个答案:

没有答案