您可能希望訪問Databricks筆記本之外的表。除了通過JDBC連接BI工具外(AWS|Azure),您也可以通過使用Python腳本訪問表。您可以使用JDBC連接到Spark集群PyHive然後運行一個腳本。您應該在運行Python腳本的機器上安裝PyHive。
安裝PyHive和Thrift
使用pip安裝PyHive和Thrift。
%sh PIP安裝pyhive thrift
運行SQL腳本
這個示例Python腳本發送SQL查詢顯示表到您的集群,然後顯示查詢的結果。
在運行腳本之前,請執行以下操作:
- 取代<標記>使用你的Databricks API令牌。
- 取代< databricks-instance >使用您的Databricks部署的域名。
- 取代< workspace-id >使用工作區ID。
- 取代< cluster-id >使用集群ID。
要獲取API令牌,請參見生成令牌(AWS|Azure).要確定其他值,請參閱如何獲取工作區、集群、筆記本和作業詳細信息(AWS|Azure).
python % # !/usr/bin/python import OS import sys from pyhive import hive from thrift。transport import THttpClient import base64 TOKEN = "< TOKEN >" WORKSPACE_URL = "" 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. name "< database -instance>" WORKSPACE_ID = " "如果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)。pending_states中的operationState:打印("Pending…")打印("Done. "fetchall():打印(表)