无法使用自定义程序集访问 U-SQL 代码隐藏中的自定义文件?

Can't access cutom file in U-SQL code-behind using custom assemblies?

我正在 U-SQL 中注册和使用自定义程序集,它访问一个文件以从中获取数据。注册程序集及其依赖项时,数据文件作为 "Addition File" 上传(我使用的是 VS 2015)。

但是,作业失败并显示 System.IO.FileNotFoundException,自定义程序集无法找到该文件。在访问文件的方法中引发异常。

是否有访问文件的特定方法?还是必须放在特定位置?

该文件放置在与自定义程序集相同的目录中,并且它是数据湖存储中的依赖项(如果相关详细信息)。

找到问题了。 当我注册程序集时,Visual Studio 正在使用以下脚本:

USE DATABASE [master];
DROP ASSEMBLY IF EXISTS  [MaxMind.Db];
CREATE ASSEMBLY [MaxMind.Db] FROM @"swebhdfs://exploreadls.azuredatalakestore.net/assemblies/MaxMind.Db.dll"
WITH ADDITIONAL_FILES = (@"swebhdfs://exploreadls.azuredatalakestore.net/assemblies/GeoLite2-City.mmdb" AS "GeoLite2-City");

请注意,第二个文件已注册为 "GeoLite2-City",但没有扩展名“.mmdb”,程序集将访问具有完整限定名的文件。

我不得不更改此脚本并 re-run 它,之后它运行良好。

您可以转到您的 ADLS 帐户并选择 "View All Jobs"->"View Script" 通过门户查看 Visual Studio 提交的作业,并且可以 "Duplicate Script" 使用它为了另一份工作。