如何從Python腳本運行SQL查詢

學習如何使用Python腳本運行SQL查詢。

寫的arjun.kaimaparambilrajan

最後發布日期:2022年5月19日

您可能希望訪問Databricks筆記本之外的表。除了通過JDBC連接BI工具之外(AWS|Azure),你也可以使用Python腳本訪問表。您可以使用JDBC連接到Spark集群PyHive然後運行一個腳本。你應該在運行Python腳本的機器上安裝PyHive。

刪除

信息

Python 2被認為臨終.您應該使用Python 3來運行本文提供的腳本。如果您的係統上同時運行Python 2和Python 3,那麼在繼續之前,您應該確保您的pip版本已鏈接到Python 3。

您可以通過運行來檢查您的pip版本pip - v在命令提示符處。這個命令返回pip的版本和它使用的Python版本。

安裝PyHive和Thrift

使用pip安裝PyHive和Thrift。

%sh PIP安裝pyhive thrift

運行SQL腳本

這個示例Python腳本發送SQL查詢顯示表到集群,然後顯示查詢的結果。

運行腳本前需要做以下準備工作:

  1. 取代<標記>使用Databricks API令牌。
  2. 取代< databricks-instance >使用Databricks部署的域名。
  3. 取代< workspace-id >使用工作區ID。
  4. 取代< cluster-id >集群ID。

要獲取API令牌,請參閱生成令牌(AWS|Azure).若要確定其他值,請參閱如何獲取工作區、集群、筆記本和作業詳細信息(AWS|Azure).

python % # !/usr/bin/python import OS import sys from pyhive import hive from thrifttransport import THttpClient import base64 TOKEN = "< TOKEN >" WORKSPACE_URL = "< databicks -instance>" WORKSPACE_ID = "" CLUSTER_ID = "" conn = 'https://%s/sql/protocolv1/o/%s/%s' % (WORKSPACE_URL, WORKSPACE_ID, CLUSTER_ID) print(conn) transport = THttpClient.THttpClient(conn) auth = " TOKEN:%s" % TOKEN PY_MAJOR = sys. bb1 "version_info[0] if PY_MAJOR < 3: auth = base64.standard_b64encode(auth) else: auth = base64.standard_b64encode(auth.encode()).decode()傳輸。setCustomHeaders({"Authorization": "Basic %s" % auth}) cursor = hive.connect(thrift_transport=transport).cursor()光標。execute('show tables',async_=True) pending_states = (hive.ttypes.TOperationState.)INITIALIZED_STATE hive.ttypes.TOperationState。PENDING_STATE, hive.ttypes.TOperationState.RUNNING_STATE)而cursor.poll()。pending_states中的operationState: print("Pending…")print("Done. ")fetchall(): print(表)


這篇文章有用嗎?