基本上,我的公司使用apache impala for datamart。
之前定义了连接参数,并将连接定义为conn = connect(host=host_name, port=port, user=user, password=password, database=database)
每次我需要一个表的时候,我都需要像这样调用一个函数
def impala_connection(host, port, user, password, database):
conn = connect(host=host_name, port=port, user=user, password=password, database=database)
cursor = conn.cursor()
cursor.execute('SELECT * from table1')
results = cursor.fetchall()
return results
table1 = pd.DataFrame(impala_connection(host_name, port, user,password, database))当我调用table1时,我的数据帧将如下所示
0 1 2 3 4
0 a b c d e
1 e f g g i表实际上有列名,该如何显示?
发布于 2020-12-30 13:11:43
使用pd.read_sql从数据库中读取限制行。并从df.columns获取表列名称。
import pandas as pd
from sqlalchemy import create_engine
conn = create_engine(
'impala://{user}:{password}@{host}:{port}/{database}'.format(
host=host, # your host
port=port,
database=database,
user=user,
password=password
)
sql_read = lambda sql: pd.read_sql(sql, conn)
sql_execute = lambda sql: pd.io.sql.execute(sql, conn)
sql = '''
select *
from table1
limit 1
'''
df = sql_read(sql)
print(df.columns)https://stackoverflow.com/questions/65502240
复制相似问题