如何从Python脚本运行SQL查询

学习如何使用Python脚本运行SQL查询。

写的arjun.kaimaparambilrajan

去年发表在:2022年5月19日

你可能想要访问你的表外的砖笔记本。除了通过JDBC连接BI工具(AWS|Azure),你也可以通过使用Python脚本访问表。你可以连接到一个火花通过JDBC使用集群PyHive然后运行一个脚本。你应该PyHive安装在机器上运行的Python脚本。

删除

信息

Python 2被认为是临终。你应该使用Python 3运行本文提供的脚本。如果你有两个Python 2和Python 3在您的系统上运行,你应该确保你的版本的皮普与Python 3之前进行。

你可以检查你的皮普的版本运行pip - v在命令提示符。这个命令返回的版本pip和Python的版本使用。

安装PyHive和节俭

使用pip安装PyHive和节俭。

% sh pip安装pyhive节俭

运行SQL脚本

这个示例Python脚本发送SQL查询显示表您的集群,然后显示查询的结果。

运行脚本之前做以下:

  1. 取代<标记>与你的砖API的令牌。
  2. 取代< databricks-instance >你的域名砖部署。
  3. 取代< workspace-id >与工作区ID。
  4. 取代< cluster-id >集群ID。

API的令牌,看到生成一个令牌(AWS|Azure)。确定其他值,看看工作区,集群,笔记本,和工作细节(AWS|Azure)。

python % # !/usr/bin/python导入操作系统从pyhive进口系统导入蜂巢从节俭。运输进口THttpClient进口base64牌= " <标记>”WORKSPACE_URL = < databricks-instance >“WORKSPACE_ID = " < workspace-id > " CLUSTER_ID = < cluster-id >“康涅狄格州= ' https://%s/sql/protocolv1/o/%s/%s ' % (WORKSPACE_URL、WORKSPACE_ID CLUSTER_ID)打印(康涅狄格州)运输= THttpClient.THttpClient(康涅狄格州)auth =“令牌:% s % TOKEN PY_MAJOR =系统。version_info[0]如果PY_MAJOR < 3: auth = base64.standard_b64encode(身份验证)其他:auth = base64.standard_b64encode (auth.encode ()) .decode运输()。setCustomHeaders({“授权”:“基本”% s % auth})光标= hive.connect (thrift_transport =运输).cursor()游标。执行(“显示表”,async_ = True) pending_states = (hive.ttypes.TOperationState。INITIALIZED_STATE hive.ttypes.TOperationState。PENDING_STATE hive.ttypes.TOperationState.RUNNING_STATE),而cursor.poll ()。operationState pending_states:打印(“等待…”)打印(“完成。结果:”)的表cursor.fetchall():打印(表)


这篇文章有用吗?