使用REFERENCE ASSEMBLY时出现U-SQL错误
我使用Azure API创建了一个U-SQL库,并在Azure云上注册了具有所有依赖项的程序集。 我用我的U-SQL项目添加了这个库,并添加到我的U-SQL脚本下面
USE master; REFERENCE ASSEMBLY [AzureLibrary];
在使用我在库中创建的函数或方法时,我收到以下错误消息。
用户表达式的内部exception:无法加载文件或程序集“Microsoft.Azure.Management.DataLake.Store,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其依赖项之一。 该系统找不到指定的文件。 当前行转储:结果:“zzz”
请帮助,我尝试了几种方法,但每次都会出现相同的消息。
======================================
我正在使用下面的代码
public static int DelTest() { int Retval = 1; try { var secretKey = ; var appId = ; var tenantId = ; string _adlsAccountName = ; DataLakeStoreFileSystemManagementClient _adlsFileSystemClient; var context = new AuthenticationContext("https://login.windows.net/" + tenantId); ClientCredential clientCredential = new ClientCredential(appId, secretKey); var tokenResponse = context.AcquireTokenAsync("https://management.azure.com/", clientCredential).Result; var accessToken = tokenResponse.AccessToken; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken); client.BaseAddress = new Uri("https://management.azure.com/"); // Now we can party with our HttpClient! } ServiceClientCredentials creds = new TokenCredentials(tokenResponse.AccessToken); _adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(creds); DataLakeStoreAccountManagementClient _adlsClient = new DataLakeStoreAccountManagementClient(creds); _adlsFileSystemClient.FileSystem.Delete(_adlsAccountName, "/raw_files/sls_tty_typ.txt"); } catch (Exception) { Retval = 0; throw; } return Retval; }
我使用“注册程序集”注册它
我在U-SQL脚本中使用了以下代码
USE [master]; REFERENCE ASSEMBLY [USQLCSharpProject1]; @ext = EXTRACT result string FROM "/raw_files/test_file.txt" USING Extractors.Csv(); @ext1 = SELECT result, USQLCSharpProject1.Class1.DelTest() AS del_success FROM @ext; OUTPUT @ext1 TO "/raw_files/test_file1.txt" USING Outputters.Csv();
执行期间,我收到以下错误消息。
请帮我解决这个问题。
请找到packages.config
文件
对于此问题,请检查以下方案:
1)确保程序集的属性Copy Local为true:
2)注册程序集时,请确保选择了托管依赖项:
3)请检查bin / Debug文件夹以确保该程序集已存在。 如果寄存器组合大于15kb,请确保它存在于Data Lake存储中
你可以转发一个repro项目以及你带给usql(at)Microsoft的确切步骤吗?
看看上面的代码,我有一点需要注意:我看到你尝试直接进行HTTP调用。 ADLA中的U-SQL顶点模式不允许您进行HTTP调用以避免意外的DDOS事件。 因此,即使注册能够正常工作,我也怀疑你的代码实际上是否符合预期。
你想要达到什么目的?
- 从Azure Blob获取最新文件
- 身份validation在调试时成功但在Azure App Service上失败
- 无法加载文件或程序集“System.Net.Http”或其依赖项之一
- 具有计时器触发和Blob触发的连续Web作业
- 配置entity framework以从Azure CloudConfiguration文件中选择连接字符串?
- 如何从代码启动Windows Azure存储模拟器V3.0
- Azure – 删除ADLS文件时出现ADlsError / WebHDFS错误
- 在Async方法中绑定到输出blob时,将Blob绑定到IAsyncCollector时出错
- 执行测试时出错,如果使用CreateResponse扩展方法返回Azure Function HttpResonseMessage