【发布时间】: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