我正在U-SQL中注册和使用自定义程序集来访问文件以从中获取数据。数据文件作为"添加文件"上传。使用它的依赖关系注册程序集时(我正在使用VS 2015)。
但是,作业因System.IO.FileNotFoundException而失败,自定义程序集无法找到该文件。在访问文件的方法中引发了异常。
是否有特定的方式来访问该文件?或者它必须放在特定的位置?
如果该文件是相关细节,则该文件与自定义程序集及其在数据湖存储中的依赖项位于同一目录中。
答案 0 :(得分:1)
发现问题。 我在注册程序集时由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");
请注意,第二个文件已注册为AS" GeoLite2-City"没有" .mmdb"扩展,程序集使用完全限定名称访问文件。
我不得不更改此脚本并重新运行它,之后它完美运行。
您可以通过访问ADLS帐户并选择"查看所有工作" - >"查看脚本"来查看Visual Studio通过门户提交的作业。并且可以"重复脚本"用它来做另一份工作。