使用U-SQL遍历文件夹

时间:2017-11-09 01:27:46

标签: azure-data-lake u-sql

我正在尝试使用U-SQL读取文件的完整父目录,无论它在源目录结构中有多深

@searchLog =    EXTRACT FileName    string,           , Path           string           , UserId          int            , Start           DateTime            , Region          string            , Query           string            , Duration        int            , Urls            string            , ClickedUrls     string     FROM "wasb://[blobcontainter]@[blobaccount]/samples/{Path}/{FileName}.csv"     USING Extractors.Csv();

我想要实现的是遍历blob容器中的文件夹并将路径保存到文件中以及内部数据。假设我有这样的文件结构:

"/samples/foo/log1.csv" "/samples/foo/bar/log1.csv" "/samples/foo/bar/baz/log3.csv"

我想获得{Path}

的价值

"foo" "foo/bar" "foo/bar/baz"

分别

目前我只能读取一个级别的文件夹,其方式是使用以下结果集作为Path返回:

FROM "wasb://[blobcontainter]@[blobaccount]/samples/{Path}/{FileName}.csv"

放一张通配符

FROM "wasb://[blobcontainter]@[blobaccount]/samples/{*}/{FileName}.csv"

读取顶级和第一个子级别文件夹的结果,但它不会比这更深,另外它不会返回结果集中的路径。

除此之外,文件列表中不支持Streamsets,所以

FROM "wasb://[blobcontainter]@[blobaccount]/samples/{Topfolder}/{FileName}.csv" FROM "wasb://[blobcontainter]@[blobaccount]/samples/{Topfolder}/{Subfolder1}/{FileName}.csv"

也不是一种选择。

1 个答案:

答案 0 :(得分:0)

目前尚未提供,但这是我们长期积压的一部分。请在http://aka.ms/adlfeedback提交功能请求,以帮助我们确定功能的优先顺序。