直接从 Azure 数据工厂执行 egg

VB_*_*VB_ 5 python egg azure azure-data-factory azure-databricks

如何从 Azure 数据工厂 (AD) 管道执行egg 文件?目前我只能从执行egg文件的地方调用Databricks notebook。有没有办法直接做到这一点?

做了什么

按照这个答案,我得到了以下异常:

{
    "errorCode": "3201",
    "message": "Must specify one jar or maven library for jar task, either via jar_uri or libraries.",
    "failureType": "UserError",
    "target": "Execute Egg",
    "details": []
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

代码和结构

在我的本地机器上我可以执行python dist/hello_world-1.0-py2.7.egg,这将打印'Hello world!'

src
 |-__init__.py
 |-main.py
__main__.py
setup.py
Run Code Online (Sandbox Code Playgroud)

设置文件

from setuptools import setup, find_packages

setup(
    name='hello-world',
    version='1.0',
    packages=find_packages(),
    py_modules=['__main__']
)
Run Code Online (Sandbox Code Playgroud)

__主_ _.py

from src.main import run

if __name__ == '__main__':
    run()
Run Code Online (Sandbox Code Playgroud)

源代码/主.py

def run():
    print('Hello world!')


if __name__ == '__main__':
    run()
Run Code Online (Sandbox Code Playgroud)

Val*_*s M 1

您似乎在 Azure 数据工厂中选择了 Jar 活动,而不是 Python 活动。

Azure 数据工厂中的 Databricks 活动

在 Jar 活动中,“主类名称”需要包含要执行的 main 方法的类的全名。此类必须包含在作为库提供的 JAR 中。

如果您选择Python活动,您可以指定Python文件名并上传您的egg库。

在此输入图像描述

您可以在这里找到更多详细信息: https ://learn.microsoft.com/en-us/azure/data-factory/transform-data-databricks-python