2016-07-06 114 views
0

Python新手。Hive Data to 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)** 

嘗試使用列名稱。沒有工作。

請注意。建議一些事。

+0

'沒Work.'很難被認爲是一個不錯的錯誤描述:) – cel

+0

我認爲是火焰正確的工具 - 但我還沒有與它合作過。這可能是一個有趣的閱讀你:http://blaze.pydata.org/blog/2015/09/16/reddit-impala/ – cel

+0

謝謝..塞爾指出。無論如何問題現在解決了。 :) –

回答

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 
3

你可以試試這個:(我敢肯定它會工作)

res = cur.getSchema() 
description = list(col['columnName'] for col in res) ## for getting the column names of the table 

headers = [x.split(".")[1] for x in description] # for splitting the list if the column name contains a period 

df= pd.DataFrame(cur.fetchall(), columns = headers) 

df.head(n = 20) 
+0

提問者已於2016年7月回答:) –