Spark 库管理

适用范围:SQL Server 2019 (15.x)

重要

Microsoft SQL Server 2019 大数据群集附加产品将停用。 对 SQL Server 2019 大数据群集的支持将于 2025 年 2 月 28 日结束。 具有软件保障的 SQL Server 2019 的所有现有用户都将在平台上获得完全支持,在此之前,该软件将继续通过 SQL Server 累积更新进行维护。 有关详细信息,请参阅公告博客文章Microsoft SQL Server 平台上的大数据选项

本文提供了有关如何通过会话和笔记本配置为 Spark 会话导入和安装包的指导。

内置工具

Scala Spark (Scala 2.12) 和 Hadoop 基础包。

PySpark (Python 3.8)。 Pandas、Sklearn、Numpy 以及其他数据处理和机器学习包。

MRO 3.5.2 包。 面向 R Spark 工作负载的 Sparklyr 和 SparkR。

在运行时将包从 Maven 存储库安装到 Spark 群集

在 Spark 会话开始时,可以使用笔记本单元配置将 Maven 包安装到 Spark 群集。 在 Azure Data Studio 中启动 Spark 会话之前,请运行以下代码:

%%configure -f \
{"conf": {"spark.jars.packages": "com.microsoft.azure:azure-eventhubs-spark_2.12:2.3.1"}}

多个包和其他 Spark 配置

在下面的示例笔记本单元中,定义了多个包。

%%configure -f \
{
    "conf": {
        "spark.jars.packages": "com.microsoft.azure:synapseml_2.12:0.9.4,com.microsoft.azure:azure-eventhubs-spark_2.12:2.3.1",
        "spark.jars.repositories":"https://mmlspark.azureedge.net/maven"
    }
}

在运行时在 PySpark 上安装 Python 包

会话和作业级包管理可保证库的一致性和隔离性。 配置是可应用于 Livy 会话的 Spark 标准库配置。 azdata spark 支持这些配置。 以下示例显示为 Azure Data Studio Notebooks 配置单元,在附加到使用 PySpark 内核的群集后需要运行该单元。

如果未设置 "spark.pyspark.virtualenv.enabled" : "true" 配置,则会话将使用群集默认 python 和已安装的库。

requirements.txt 的会话/作业配置

在 HDFS 中指定 requirements.txt 文件路径,将其用作要安装的包的引用。

%%configure -f \
{
    "conf": {
        "spark.pyspark.virtualenv.enabled" : "true",
        "spark.pyspark.virtualenv.python_version": "3.8",
        "spark.pyspark.virtualenv.requirements" : "hdfs://user/project-A/requirements.txt"
    }
}

不同 python 版本的会话/作业配置

创建无要求文件的 conda virtualenv,并在 Spark 会话期间动态添加包。

%%configure -f \
{
    "conf": {
        "spark.pyspark.virtualenv.enabled" : "true",
        "spark.pyspark.virtualenv.python_version": "3.7"
    }
}

库安装

执行 sc.install_packages,以在会话中动态安装库。 这些库将安装到驱动程序和所有执行器节点上。

sc.install_packages("numpy==1.11.0")
import numpy as np

还可以使用数组在同一命令中安装多个库。

sc.install_packages(["numpy==1.11.0", "xgboost"])
import numpy as np
import xgboost as xgb

从 HDFS 导入 .jar 以便在运行时使用

在运行时通过 Azure Data Studio 笔记本单元配置导入 jar。

%%configure -f
{"conf": {"spark.jars": "/jar/mycodeJar.jar"}}

后续步骤

有关 SQL Server 大数据群集和相关方案的详细信息,请参阅 SQL Server 大数据群集