我有一个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://[email protected]/log_{LogDate:yyyy}{LogDate:MM}{LogDate:dd}_{LogOrder}.log.gz"
USING Extractors.Text(delimiter: ' ', quoting: true, skipFirstNRows: 1);
// the rest is irrelevant
不幸的是,当我把它提交给ADL时,工作失败了,出现了以下错误:
CsEnumerateDirectoryWithPaging failed with error 0x83090A1A (The operation is not supported on the provided Url type). Cosmos路径:abfss:/[email protected]
当使用相对路径的本地存储时,查询在本地运行良好。
根据评论,U-SQL不能与Azure Data Lake Gen 2一起工作,而且永远也不可能。 有一个反馈项目,你应该阅读。
在2020年,考虑使用Azure Databricks启动新的Azure分析项目。