【问题标题】:Is it possible to build USQL project without checking external dependencies?是否可以在不检查外部依赖项的情况下构建 USQL 项目?
【发布时间】:2018-01-14 15:59:29
【问题描述】:

当我尝试在 Visual Studio 中构建我的 USQL 项目时,我收到了这个错误:

错误 E_STORE_USER_FILENOTFOUND:找不到文件或拒绝访问: wasb://xxxx@yyyy.blob.core.windows.net/file.txt。说明:无法 获取有关此文件的信息。解决方法:确保文件 存在精确大小写(路径区分大小写)和帐户 拥有该文件的读取权限。

显然,我无权访问该文件,但这很好,因为脚本应该在服务帐户下执行,而不是我的个人帐户。

如果我在脚本中引用了未安装在本地 ADLA 中的程序集,也会发生同样的情况。

我正在使用 Visual Studio 2015 Professional Update 3 和 Azure Data Lake Tools for VS 2.3.0.1。

是否可以在不检查此外部引用的情况下构建 USQL 项目?我只是想确保脚本语法没问题。

【问题讨论】:

  • 您是否可以选择使用相对路径,确保文件的示例版本存在本地并使用本地模拟器在本地执行以确保脚本正常工作?
  • @wBob 我们在脚本中同时使用 blob 存储和数据湖存储。 DLS 是 ADLA 的默认存储,因此本地路径适用于它。但是对于 blob 存储,我们需要指定完整路径。
  • 我有同样的问题,但只要脚本在某个地方出现语法错误,就会在构建错误中弹出,而不是 E_STORE_USER_FILENOTFOUND 错误。这就是我的解决方法:如果唯一的错误是 FILENOTFOUND,那么脚本就可以了。

标签: azure-data-lake u-sql


【解决方案1】:

回答这个问题:如果不访问输入文件,就无法构建/编译 U-SQL 脚本。编译脚本时会访问和检查文件元数据,包括大小和 ACL,因为准备工作是生成依赖于数据大小等的作业图。

我建议向http://aka.ms/adlfeedback 提交功能请求,以请求工具中的语法验证选项。请注意,VS 编辑器中的智能感知会在不访问文件的情况下为您提供一些语法是否正确的指示(尽管如果您在其中引用对象,它仍然需要访问您的元数据服务)。

【讨论】:

    【解决方案2】:

    我只是想让你知道我正在调查这件事!目前,@wBob 的解决方法是您最好的选择。例如,您可以创建一个测试 blob 存储帐户,添加文件的示例版本,并将完整路径指向这些版本。

    不幸的是,@Peter Bons 的解决方法似乎并不总是有效。我刚刚测试了一个带有语法错误和不存在的文件引用的脚本,我只得到了文件未找到错误(在本地测试)。

    我目前正在查看是否存在忽略外部依赖项的语法检查,并会尽快回复您!

    谢谢,
    马特·巴西尔 Azure 数据湖 PM

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 2017-07-28
      • 1970-01-01
      • 2011-09-20
      相关资源
      最近更新 更多