【问题标题】:Referencing ADL storage gen2 files from U-SQL从 U-SQL 引用 ADL 存储 gen2 文件
【发布时间】:2020-04-24 06:23:18
【问题描述】:

我有一个 ADL 帐户,其中设置了两个存储:常规 ADLS gen1 存储设置为默认值,以及启用了“分层命名空间”的 blob 存储,如果这很重要,则使用存储密钥连接到 ADLS(在这点)。第一个与问题无关,只是为了这个问题,第二个注册在testdlsg2的名称下。我在 Azure 门户的数据资源管理器中都看到了。

现在,我在该 blob 存储中有一个名为 logs 的容器,在该容器的根目录中有我要处理的日志文件。

如何从 U-SQL 引用特定存储和特定容器中的这些文件?

我已阅读 ADLS Gen2 URI documentation 并提出以下 U-SQL:

@data =
    EXTRACT
        Timestamp long,
        // skip, skip, skip
        LogDate DateTime,
        LogOrder int
    FROM "abfss://logs@testdlsg2.dfs.core.windows.net/log_{LogDate:yyyy}{LogDate:MM}{LogDate:dd}_{LogOrder}.log.gz"
    USING Extractors.Text(delimiter: ' ', quoting: true, skipFirstNRows: 1);

// the rest is irrelevant

不幸的是,当我将其提交给 ADL 时,作业失败并出现以下错误:

CsEnumerateDirectoryWithPaging 失败,错误为 0x83090A1A(提供的 Url 类型不支持该操作)。 Cosmos 路径:abfss://logs@testdlsg2.dfs.core.windows.net/

当使用具有相对路径的本地存储时,查询在本地运行良好。

【问题讨论】:

  • 我认为 U-SQL 不能与 ADLSgen2 一起使用,它只是 gen1。

标签: azure azure-data-lake u-sql azure-data-lake-gen2


【解决方案1】:

根据评论,U-SQL 不适用于 Azure Data Lake Gen 2,而且不太可能会。您应该阅读一个反馈项:

https://feedback.azure.com/forums/327234-data-lake/suggestions/36445702-add-support-for-adls-gen2-to-adla

在 2020 年,考虑使用 Azure Databricks 启动新的 Azure 分析项目。

【讨论】:

  • 嗯...如果不能使用 ADLS gen2 存储连接到 ADLA 有什么意义?
  • 您无法真正链接 ADLS2。您只需输入地址并将其发送给编译器。它正在尝试,但永远不会奏效。要么坚持使用 ADLA gen 1,要么开始考虑使用 Azure Databricks 等替代方案。它的功能更加全面。
  • 在 Azure 门户的 ADLA 实例设置中,有一个数据资源管理器选项卡,其中包含数据源列表。然而,它在那里看起来只是“Blob 存储”。无论哪种方式,我都能够使用wasb 协议而不是abfs 访问它。
猜你喜欢
  • 2023-03-07
  • 1970-01-01
  • 2017-09-30
  • 1970-01-01
  • 2022-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多