若是要使用Python來鏈接Presto,就須要相關的驅動包。
目前發現有兩個驅動包,分別是:
pyhive : https://github.com/dropbox/PyHive
presto-python-client : https://github.com/prestodb/presto-python-client
其中第二個是Presto官方本身弄的,不過使用率沒有pyhive高。在Superset中也是用pyhive來鏈接的,並且pyhive能夠集成到sqlalchemy裏,從而無縫地銜接pandas。python
下面就簡單介紹一下怎麼用pyhive來鏈接presto。
sqlalchemy提供了一個統一的鏈接方式,很是
pyhive實質是安裝了一個驅動,因此任何python裏能建立通常化的數據庫鏈接的模塊均可以用來建立Presto鏈接。
安裝pyhive後,就能夠執行下面的代碼。git
from sqlalchemy import * from sqlalchemy.engine import create_engine from sqlalchemy.schema import * import pandas as pd # Presto engine = create_engine('presto://host:port/hive/my_schema') # host是服務器ip,port是端口,hive指的是Presto的catalog,my_schema是hive的schema。 df = pd.read_sql("select * from test",engine) # 和通常pandas從數據庫中讀取數據無任何區別,分析師們應該很是熟悉了。 print(df)