如何枚举Data Lake Store中的文件子集?

时间:2017-06-17 09:35:07

标签: c# .net azure azure-data-lake

我有大量文件存储在Data Lake Store中 - 我现在需要获取最新的文件。

因为我没有找到更好的方法,我目前的方法是列出所有文件并查看修改日期。但是,我怀疑在处理更大的文件集时会出现一些问题。 API通过调用以下方法来限制它:

var statuses = _client.FileSystem.ListFileStatus(_store._dlsAccountName, "/the/path", 2);

这只会给我2个文件。但是,它们似乎按字母顺序返回。

有人知道如何:

  • 仅枚举最新文件,
  • 更改列表文件状态返回结果的方式?

1 个答案:

答案 0 :(得分:2)

如您所述,函数 ListFileStatus 结果未按修改时间排序。我也找不到在Microsoft.Azure.Management.DataLake.Store SDK中列出最长文件的函数。

  

更改列表文件状态返回结果的方式?

是的,由于FileStatusmodification time属性,我们可以列出包含以下代码的最新文件。

var number = 2;
var statuses = _client.FileSystem.ListFileStatus(_store._dlsAccountName, "/the/path").FileStatuses.FileStatus.ToList().OrderByDescending(x=>x.ModificationTime).Take(number);

我测试了它,它工作正常。