0

我可以用 PYHIVE 连接到 PRESTO 并选择数据回来就好了。我正在尝试使用 PYHIVE 在 presto 上运行“插入 x 从 y 中选择”,但它没有运行。我确定我错过了一些简单的东西。

from pyhive import presto
import requests
from requests.auth import HTTPBasicAuth
import pandas as pd

req_kw = {'auth': HTTPBasicAuth(user, pw),'verify':False}

conn = presto.connect(host=ht,port=prt,protocol='https',catalog='hive',username=user,requests_kwargs=req_kw)

cursor  = conn.cursor()

query='select count(1) from dim.date_dim '
cursor.execute(query)
print(cursor.fetchall())

query='insert into flowersc.date_dim select * from dim.date_dim'
cursor.execute(query)

query='select count(1) from flowersc.date_dim '
cursor.execute(query)
print(cursor.fetchall())

没有错误发生

但结果显示没有加载数据

[(16624,)] [(0,)]

任何帮助是极大的赞赏。

4

1 回答 1

0

您需要检查(获取)结果

query='insert into flowersc.date_dim select * from dim.date_dim'
cursor.execute(query).next() # added .next()

这是因为 Presto 在 2018 年 5 月发生了变化(https://github.com/prestosql/presto/commit/568449b8d058ed8281cc5277bb53902fd044cad7)。但验证查询结果也是一个很好的做法,即检查您的INSERT语句是否成功。

于 2019-09-28T05:45:40.513 回答