是否可以使用带有魔术命令的 Azure Synapse 在 Apache Spark 中运行 Bash 命令
Posted
技术标签:
【中文标题】是否可以使用带有魔术命令的 Azure Synapse 在 Apache Spark 中运行 Bash 命令【英文标题】:Is it possible to run Bash Commands in Apache Spark with Azure Synapse with Magic Commands 【发布时间】:2021-08-29 07:40:00 【问题描述】:在 databricks 中有以下魔术命令 $sh,它允许您在笔记本中运行 bash 命令。 例如,如果我想在 Databrick 中运行以下代码:
pip install great_expectations
我会发出以下代码:
%sh
pip install great_expectations
有人可以告诉我 Azure Synapse 中的 Apache Spark 笔记本有什么等价物吗? 很可能 Azure Synapse 无法实现,但我不知道。
只是为了补充这个问题,在 Databricks 中运行以下命令时
great_expectations init
命令一直卡在运行中,见图
但是,当我运行相同的代码时,我对常规 Linux 操作系统的期望是
OK to proceed? [Y/n]:
有什么可以补充的吗
great_expectations init
让代码返回
OK to proceed? [Y/n]:
谢谢
【问题讨论】:
你想达到什么目的?配置 Spark 数据?%sh
不是为“交互式命令”设计的
嗨@AlexOtt,我想安装一个名为great_expectations 的python 包。在 Databricks 上,我只需输入代码 %sh pip install great_expectations,但 Synapse 没有该选项
【参考方案1】:
Azure Synapse Analytics Spark 池支持 - Synapse 管道中仅支持以下魔法命令:
%%pyspark
、%%spark
、%%csharp
、%%sql
。
可以通过提供环境规范文件从 PyPI 和 Conda-Forge 等存储库安装 Python 包。
在 Synapse Spark 池中安装 python 包的步骤。
第 1 步: 从pypi.org
获取包详细信息,例如 name 和 version注意: (great_expectations) 和 (0.13.19)
第 2 步:使用上述名称和版本创建一个requirements.txt
文件。
第 3 步:将包上传到 Synapse Spark Pool。
第 4 步:保存并等待在 Synapse Spark 池中应用包设置。
第 5 步:验证已安装的库
要验证是否从 PyPI 安装了正确版本的正确库,请运行以下代码:
import pkg_resources
for d in pkg_resources.working_set:
print(d)
更多详情请参考Manage Python libraries for Apache Spark in Azure Synapse Analytics。
【讨论】:
以上是关于是否可以使用带有魔术命令的 Azure Synapse 在 Apache Spark 中运行 Bash 命令的主要内容,如果未能解决你的问题,请参考以下文章
带有 QueueTrigger 的 Azure 函数:是不是可以仅配置存储帐户 URL 并使用托管标识访问队列?
是否可以通过 storagenestJS sdk 上传带有元数据的文件?
是否有任何 PowerShell 脚本或命令可以从 Azure 门户获取租户中所有用户访问角色的报告?