Jon*_*Jon 34 hadoop hdfs apache-spark
我在HDFS上有一个目录目录,我想迭代这些目录.使用SparkContext对象有没有简单的方法来使用Spark?
Mik*_*ark 47
你可以用org.apache.hadoop.fs.FileSystem.特别,FileSystem.listFiles([path], true)
和Spark一起......
FileSystem.get(sc.hadoopConfiguration).listFiles(..., true)
Run Code Online (Sandbox Code Playgroud)
编辑
值得注意的是,良好的做法是获得FileSystem与该Path计划相关的内容.
path.getFileSystem(sc.hadoopConfiguration).listFiles(path, true)
Run Code Online (Sandbox Code Playgroud)
Tag*_*gar 26
如果有人有兴趣,这是PySpark版本:
hadoop = sc._jvm.org.apache.hadoop
fs = hadoop.fs.FileSystem
conf = hadoop.conf.Configuration()
path = hadoop.fs.Path('/hivewarehouse/disc_mrt.db/unified_fact/')
for f in fs.get(conf).listStatus(path):
print(f.getPath(), f.getLen())
Run Code Online (Sandbox Code Playgroud)
在这种特殊情况下,我得到组成disc_mrt.unified_fact Hive表的所有文件的列表.
FileStatus对象的其他方法,如getLen()来获取文件大小,如下所述:
ozw*_*5rd 15
import org.apache.hadoop.fs.{FileSystem,Path}
FileSystem.get( sc.hadoopConfiguration ).listStatus( new Path("hdfs:///tmp")).foreach( x => println(x.getPath ))
Run Code Online (Sandbox Code Playgroud)
这对我有用.
Spark版本1.5.0-cdh5.5.2
| 归档时间: |
|
| 查看次数: |
32175 次 |
| 最近记录: |