我正在使用来自基于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)
欢迎任何帮助。预先感谢!