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

标签 azure azure-data-lake u-sql

我正在 U-SQL 中注册和使用自定义程序集来访问文件以从中获取数据。在使用其依赖项注册程序集时,数据文件作为“附加文件”上传(我使用的是 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”扩展名,并且程序集使用完整限定名称访问该文件。

我必须更改此脚本并重新运行它,之后它就完美运行了。

您可以通过门户查看 Visual Studio 提交的作业,方法是转到您的 ADLS 帐户并选择“查看所有作业”->“查看脚本”,并可以“​​复制脚本”以将其用于其他作业。

关于azure - 无法使用自定义程序集访问 U-SQL 代码隐藏中的自定义文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34852061/

相关文章:

azure - 将 DocumentDB 集合移动到 Azure Data Lake Storage

u-sql - Sql中的Partition By和Clustered and Distributed By - 需要知道它们的含义以及何时使用它们

azure - 自动/计划每日 USQL 脚本执行

reactjs - 我是否需要 Azure AD 应用程序才能将 Power BI 报告嵌入到我自己的应用程序中?

c# - 如何创建文件或将文件上传到 Azure Data Lake Storage Gen2

Azure SQL 数据库命名不明确

azure - 如何将文件从两个旋转的 Azure 存储帐户容器提取/复制到另一个容器中

xpath - 我无法使用 Xpath 提取节点文本

azure - 如何从 ADLS 批量加载 Azure SQL DB

reactjs - React应用程序在本地运行,但部署到Azure Web App时不起作用