Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 配置单元数据到数据帧_Python_Pandas_Hadoop_Hive - Fatal编程技术网

Python 配置单元数据到数据帧

Python 配置单元数据到数据帧,python,pandas,hadoop,hive,Python,Pandas,Hadoop,Hive,Python新手 如何将数据从配置单元保存到熊猫数据框 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

Python新手

如何将数据从配置单元保存到熊猫数据框

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)**
尝试使用列名。没用


请。提出建议

正如我之前获取数据并试图再次获取一样,获取空数据帧也是如此

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

你可以试试这个:我很确定它会起作用

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.24.0采用DB连接。直接使用pandas.read_sql连接,如下所示:

从pyhive导入hive 作为pd进口熊猫 开放连接 连接=配置单元。连接主机=主机,端口=20000。。。 将表查询到新的数据帧 dataframe=pd.read\u sqlSELECT id,来自test.example\u表的名称,conn Dataframe的列将以配置单元表的名称命名。如果需要,可以在数据帧创建期间/之后更改它们:

通过HiveQL:选择id作为新列名称。。。 通过pd.read\u sql中的columns属性
没用。很难被认为是一个好的错误描述:我认为blaze是实现这一点的合适工具——不过,我还没有使用它。这对你来说可能是一本有趣的读物:谢谢。。谢谢你指出这一点。无论如何,问题现在解决了