欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python连接presto

程序员文章站 2022-06-17 19:38:05
presto支持jdbc驱动连接,从外表来看,和一般的关系型数据库连接相似。 目前发现有两个包支持直接使用,分别是: pyhive : https://github.com/dropbox/PyHive presto python client : https://github.com/presto ......

presto支持jdbc驱动连接,从外表来看,和一般的关系型数据库连接相似。
目前发现有两个包支持直接使用,分别是:
pyhive : https://github.com/dropbox/PyHive
presto-python-client : https://github.com/prestodb/presto-python-client
其中第二个是官方自己弄的,不过看起来使用率没有第一个高。在superset中也是用pyhive来连接的。
所以只说一下怎么用pyhive来连接presto。
pyhive实质是安装了一个驱动,所以任何python里能创建一般化的数据库连接的模块都可以用来创建presto连接,下面是来自官方的例子

from sqlalchemy import *
from sqlalchemy.engine import create_engine
from sqlalchemy.schema import *
# Presto
engine = create_engine('presto://localhost:8080/hive/default')  # 只需要简单地改一下所用的方言。需要说明的是,这里的hive指的是catalog,default是schema,因为presto的构造与MySQL稍有不一样
# Hive
engine = create_engine('hive://localhost:10000/default')
logs = Table('my_awesome_data', MetaData(bind=engine), autoload=True)
print select([func.count('*')], from_obj=logs).scalar()