python-3.x - 为什么会产生这个 no assembly found 的错误?master.extpython
问题描述
我正在尝试使用 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'不存在。
解决方案
首先,您需要在本地数据库中注册您的程序集。所以首先创建一个脚本来做到这一点。
DROP ASSEMBLY IF EXISTS [ExtPython];
CREATE ASSEMBLY [ExtPython] FROM @"Assemblies/ExtPython.dll";
将您的 dll 放在程序集文件夹中,以便脚本可以获取并注册它。
默认的 U-SQL 本地文件夹是 ..\AppData\Local\USQLDataRoot。因此,创建 AppData\Local\USQLDataRoot\Assemblies 之类的文件夹。
或者您可以将上面的代码放在您的脚本中引用之前。
推荐阅读
- amazon-web-services - 我正在尝试通过 Cloud Formation 的预算设置预算操作
- regex - Notepad++ 在两个竖线之间查找 50 个字符或更长的字符串
- python-3.x - 如何从抓取谷歌地图的地址中获取纬度和经度?
- javascript - JavaScript 中的 Vector Swizzling:最佳方法
- apache-spark - Spark 中是否有聚类算法,其中生成的聚类大小大致相同?
- angular - 如何在 Angular 中触发事件的动作
- sharepoint - 如何将文件夹、子文件夹及其文件复制到另一个站点上的库中
- rpgle - 如何在 MiWorkplace 上安装服务器 Pub400?
- bash - Bash:搜索一个文件中的字符串是否存在于目录中并在其上运行命令
- c++ - 将 C++ 转换为 MASM 的麻烦:找到独特的素数和友好的对