我正在尝试从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中读取它的最佳方式是什么。我们创建符号链接的原因是将其指向最新的数据集。
欢迎任何建议。感谢
答案 0 :(得分:0)
MapR特定的解决方法。请注意使用MapRFileStatus而不是hadoop FileStatus。
FileSystem fs = FileSystem.get(conf);
MapRFileStatus fst = (MapRFileStatus)fs.getFileStatus(path);
Path target = fst.getSymlink();