我有一个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(提供的网址类型不支持该操作)。宇宙路径:abfss://logs@testdlsg2.dfs.core.windows.net/
当使用具有相对路径的本地存储时,查询在本地运行良好。
答案 0 :(得分:1)
根据评论,U-SQL不适用于Azure Data Lake Gen 2,并且不太可能使用。有一个反馈项目,您应该阅读:
在2020年,考虑使用Azure Databricks启动新的Azure分析项目。