是否可以使用带有魔术命令的 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

获取包详细信息,例如 nameversion

注意: (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 上传带有元数据的文件?

带有 WAF 的 Azure 应用服务

是否有任何 PowerShell 脚本或命令可以从 Azure 门户获取租户中所有用户访问角色的报告?

Synapse Analytics sql 按需同步与火花池的查询速度非常慢

詹金斯是否具有非秘密凭证等功能?