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()