如何从hdfs符号链接中读取多个文本文件

时间:2015-02-27 01:44:36

标签: hadoop apache-spark hdfs symlink mapr

我正在尝试从spark中读取hdfs符号链接的多个部分文件。如果路径是物理的,我可以使用通配符(*)从路径读取多个文件 例如 sparkContext.textFile(/some/path/file_123321_00/part-r-000*)

但是我在hdfs上为这个文件夹创建了一个名为'fullset'的符号链接。当我使用
时 / some / path / fullset / part-r-000 *它无法检测到任何路径。 我在两个路径上尝试了hadoop fs -ls。第一个工作,但一个符号链接不能按预期工作。
 我们正在使用MapR发行版,它允许我们创建这样的符号链接,但我不确定现在从Spark中读取它的最佳方式是什么。我们创建符号链接的原因是将其指向最新的数据集。 欢迎任何建议。感谢

1 个答案:

答案 0 :(得分:0)

MapR特定的解决方法。请注意使用MapRFileStatus而不是hadoop FileStatus。

FileSystem fs = FileSystem.get(conf); MapRFileStatus fst = (MapRFileStatus)fs.getFileStatus(path); Path target = fst.getSymlink();