Hive 数据到 Pandas 数据框

ank*_*pta 6 python hadoop hive pandas

Python 新手。

如何将数据从 hive 保存到 Pandas 数据框。

with pyhs2.connect(host, port=20000,authMechanism="PLAIN",user,password,
               database) as conn:
    with conn.cursor() as cur:
        #Show databases
        print cur.getDatabases()

        #Execute query
        cur.execute(query)

        #Return column info from query
        print cur.getSchema()

        #Fetch table results
        for i in cur.fetch():
            print i
        **columnNames = [a['columnName'] for a in  cur.getSchema()]
        print columnNames
        df1=pd.DataFrame(cur.fetch(),columnNames)**
Run Code Online (Sandbox Code Playgroud)

尝试使用列名。没用。

请。提出一些建议。

Saf*_*bia 8

pd.read_sql() (pandas 0.24.0) 需要一个数据库连接。直接使用PyHive连接pandas.read_sql()如下:

from pyhive import hive
import pandas as pd

# open connection
conn = hive.Connection(host=host,port= 20000, ...)

# query the table to a new dataframe
dataframe = pd.read_sql("SELECT id, name FROM test.example_table", conn)

Run Code Online (Sandbox Code Playgroud)

Dataframe 的列将以 hive 表的名称命名。如果需要,可以在创建数据帧期间/之后更改它们:

  • 通过 HiveQL: SELECT id AS new_column_name ...
  • 通过列属性在 pd.read_sql()


ank*_*pta 0

由于我之前已获取过数据并尝试再次获取,因此得到了空数据框。

cur.execute(query)
val=cur.fetchall()
columnNames = [a['columnName'] for a in  cur.getSchema()]
df=pd.DataFrame(data=val,columns=columnNames)
#print df
return df
Run Code Online (Sandbox Code Playgroud)