为什么会生成此未找到程序集的错误? master.extpython

时间:2019-07-02 04:53:27

标签: python-3.x u-sql

我正在尝试使用Python UDO。一个简单的代码由于未找到程序集而报错

这是使python在ADLA上运行的第一个测试

REFERENCE ASSEMBLY [ExtPython];

DECLARE @myScript = @"

def usqlml_main(df):
    return df
";

@t  = 
    SELECT * FROM 
            (VALUES
            ("key1",100),
            ("key1",101),
            ("key2",200),
            ("key3",202)
        ) AS 
              D( partitionkey, value );

@m  =
    REDUCE @t ON partitionkey
    PRODUCE partitionkey string, value string
    USING new Extension.Python.Reducer(pyScript:@myScript);


OUTPUT @m
  TO "/output.csv"
  USING Outputters.Csv();

这应该运行的错误是程序集'master.ExtPython'不存在。

enter image description here

1 个答案:

答案 0 :(得分:0)

首先,您需要在本地数据库中注册程序集。 因此,首先创建一个脚本来完成该操作。

DROP ASSEMBLY IF EXISTS [ExtPython];

CREATE ASSEMBLY [ExtPython] FROM @"Assemblies/ExtPython.dll";

将您的dll放在Assemblys文件夹中,以便脚本可以获取并注册它。

默认的U-SQL本地文件夹为.. \ AppData \ Local \ USQLDataRoot。因此,创建并创建一个文件夹,如AppData \ Local \ USQLDataRoot \ Assemblies。

或者您也可以将上面的代码放在引用之前的脚本中。