我正在尝试使用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'不存在。
答案 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。
或者您也可以将上面的代码放在引用之前的脚本中。