您可能希望訪問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 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(表)