我目前正在使用Azure Data Factory进行ETL作业,最后我想启动一个U-SQL作业。我已经创建了我的datalake.usql脚本,脚本使用的UDF在datalake.usql.cs文件中,与Visual Studio中的U-SQL项目具有相同的结构(这是我开发U-SQL作业并成功运行它的地方)。
在那之后,我将它们都上传到Azure Blob Storage,并在Azure Data Factory中设置U-SQL步骤来使用U-SQL脚本,但它看不到带有我的UDF的datalake.usql.cs。
我该怎么做呢?
发布于 2020-03-17 03:52:36
我解决了这个问题,所以如果将来其他人有这个问题,我会在这里发布答案。
当您在本地开发时,您有一个script.usql和一个script.usql.cs文件。当你运行它时,Visual Studio会做所有繁重的工作,以一种可用的方式编译它,然后你的脚本就会运行。但是,当您尝试从Azure数据工厂运行脚本时,您不能像Visual Studio那样在运行时执行编译。
这个问题的解决方案是从您的script.usql.cs生成一个程序集,一个.dll文件,将其上传到您正在使用的数据存储中,并将其注册到U-SQL Catalog中。然后,您可以引用此程序集并正常使用它,就像在本地计算机上一样。
这些简短的指南介绍了实现这一点所需的所有步骤:
https://saveenr.gitbooks.io/usql-tutorial/content/usql-catalog/intro.html
https://saveenr.gitbooks.io/usql-tutorial/content/usql-catalog/usql-databases.html
https://saveenr.gitbooks.io/usql-tutorial/content/usql-catalog/assemblies.html
https://www.c-sharpcorner.com/UploadFile/1e050f/creating-and-using-dll-class-library-in-C-Sharp/
https://stackoverflow.com/questions/60670104
复制相似问题