通过运行 Azure Databricks 中的 Python 活动转换数据

适用于: Azure 数据工厂 Azure Synapse Analytics

数据工厂管道中的 Azure Databricks Python 活动在 Azure Databricks 群集中运行 Python 文件。 本文基于数据转换活动一文,它概述了数据转换和受支持的转换活动。 Azure Databricks 是一个用于运行 Apache Spark 的托管平台。

Databricks Python 活动定义

下面是 Databricks Python 活动的示例 JSON 定义:

{
    "activity": {
        "name": "MyActivity",
        "description": "MyActivity description",
        "type": "DatabricksSparkPython",
        "linkedServiceName": {
            "referenceName": "MyDatabricksLinkedservice",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "pythonFile": "dbfs:/docs/pi.py",
            "parameters": [
                "10"
            ],
            "libraries": [
                {
                    "pypi": {
                        "package": "tensorflow"
                    }
                }
            ]
        }
    }
}

Databricks Python 活动属性

下表描述了 JSON 定义中使用的 JSON 属性:

properties 说明 必需
name 管道中活动的名称。
description 描述活动用途的文本。
type 对于 Databricks Python 活动,活动类型是 DatabricksSparkPython。
linkedServiceName Databricks 链接服务的名称,Python 活动在其上运行。 若要了解此链接服务,请参阅计算链接服务一文。
pythonFile 要执行的 Python 文件的 URI。 仅支持 DBFS 路径。
parameters 将传递到 Python 文件的命令行参数。 这是一个字符串数组。
要安装在将执行作业的群集上的库列表。 它可以是 <string, object> 数组

databricks 活动支持的库

在以上 Databricks 活动定义中,指定这些库类型:jar、egg、maven、pypi、cran。

{
    "libraries": [
        {
            "jar": "dbfs:/mnt/libraries/library.jar"
        },
        {
            "egg": "dbfs:/mnt/libraries/library.egg"
        },
        {
            "maven": {
                "coordinates": "org.jsoup:jsoup:1.7.2",
                "exclusions": [ "slf4j:slf4j" ]
            }
        },
        {
            "pypi": {
                "package": "simplejson",
                "repo": "http://my-pypi-mirror.com"
            }
        },
        {
            "cran": {
                "package": "ada",
                "repo": "https://cran.us.r-project.org"
            }
        }
    ]
}

有关详细信息,请参阅库类型的 Databricks 文档

如何上传 Databricks 中的库

可以使用工作区 UI:

  1. 使用 Databricks 工作区 UI

  2. 若要获取使用 UI 添加的库的 dbfs 路径,可以使用 Databricks CLI

    使用 UI 时,Jar 库通常存储在 dbfs:/FileStore/jars 下。 可以通过 CLI 列出所有库:databricks fs ls dbfs:/FileStore/job-jars

或者可以使用 Databricks CLI:

  1. 遵循使用 Databricks CLI 复制库

  2. 使用 Databricks CLI(安装步骤)

    例如,将 JAR 复制到 dbfs:dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar