Как преобразовать вывод запроса Presto в фрейм данных Python - PullRequest
2 голосов
/ 05 мая 2019

Я хочу преобразовать вывод моего запроса во фрейм данных 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

1 Ответ

0 голосов
/ 06 мая 2019

Это очень просто, я бы посоветовал вам использовать 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()
)
...