2016-07-06 83 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月回答:) –