gpt4 book ai didi

dataframe - 如何将 presto 查询输出转换为 python 数据框

转载 作者:行者123 更新时间:2023-12-02 22:59:56 25 4
gpt4 key购买 nike

我想将查询输出转换为Python数据框以绘制折线图

import prestodb
import pandas as pd

conn=prestodb.dbapi.connect(
host='10.0.0.101',
port=8081,
user='hive',
catalog='hive',
schema='ong',
)

cur = conn.cursor()

query="SELECT dtime,tagName FROM machine where tagname is not null
limit 1000"

cur.execute(query)

rows = cur.fetchall()

print(rows)

df = pd.DataFrame(query, columns=['x_axis','tagName'])

这是我的查询示例输出

[['2018-09-08 00:00:00.000', 26], ['2018-09-08 01:00:00.000', 26], 
['2018-09-08 02:00:00.000', 26], ['2018-09-08 03:00:00.000', 27],
['2018-09-08 04:00:00.000', 27], ['2018-09-08 05:00:00.000', 27]]

如何使用 python 将此查询输出转换为数据框

最佳答案

这非常简单,我建议您使用 pyhive.presto 连接器(请参阅: https://github.com/dropbox/PyHive )来连接到 presto,但您使用的连接器也应该以相同的方式工作。

然后你有几个选择:

1 - 使用 presto 连接和 pandas read_sql_query

2 - 使用 presto 光标并使用 fetchall 的输出作为数据帧的输入数据。

# option 1
import pandas as pd
from pyhive import presto

connection = presto.connect(user='my-user', host='presto.my.host.com', port=8889)

df = pd.read_sql_query("select 100", connection)

print(
df.head()
)

# option 2
import pandas as pd
from pyhive import presto

connection = presto.connect(user='my-user', host='presto.my.host.com', port=8889)
cur = connection.cursor()

cur.execute("select 100")

df = pd.DataFrame(cur.fetchall())

print(
df.head()
)

关于dataframe - 如何将 presto 查询输出转换为 python 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55988436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com