如何显示 impala 数据集市中的列名

How to show column name from impala datamart

基本上,我的公司使用 apache impala 作为数据集市。

之前定义了连接参数,连接定义为 conn = connect(host=host_name, port=port, user=user, password=password, database=database)

每次我需要 table 我需要调用这样的函数

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

实际上 table 有列名,如何显示?

从数据库中读取限制行使用 pd.read_sql。并从 df.columns 获取 table 列名称。

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)