引用U-SQL中的ADL存储第2代文件



我有一个ADL帐户,设置了两个存储:一个是默认设置的常规ADLS gen1存储,另一个是启用了"层次命名空间"的blob存储,如果重要的话,它使用存储密钥连接到ADLS(目前没有托管身份(。第一个与问题无关,只是为了这个问题,第二个以名称testdlsg2注册。我在Azure门户的数据浏览器中看到了这两种情况。

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

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

我已经阅读了ADLS Gen2 URI文档,并提出了以下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类型不支持该操作(。宇宙之路:abfss://logs@testdlsg2.dfs.core.windows.net/

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

根据评论,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分析项目。

相关内容

  • 没有找到相关文章

最新更新