jar*_*fly 1 directory file path hdfs pyspark
我在hdfs中有一个目录,其中包含许多文件。我知道目录的路径,我正在尝试获取目录包含的那些文件名的列表。我该怎么办?
如果我有以下目录:
+dir/
+f1
+f2
+fN
Run Code Online (Sandbox Code Playgroud)
我想获得如下列表:
[f1, f2, fN]
Run Code Online (Sandbox Code Playgroud)
您可以在pyspark中使用HDFS(或任何其他兼容的Hadoop文件系统)API,并附带一些py4j魔术。要列出特定目录中的文件,请使用:
path = "/here/is/my/dir/"
fs = spark._jvm.org.apache.hadoop.fs.FileSystem.get(spark._jsc.hadoopConfiguration())
list_status = fs.listStatus(spark._jvm.org.apache.hadoop.fs.Path(path))
result = [file.getPath().getName() for file in list_status]
Run Code Online (Sandbox Code Playgroud)
list_status集合的元素的类型为FileSystem。使用此API,您可以获取文件元数据,例如目录,模式,所有者,组,ACL的信息,并使用这些信息过滤掉不需要的文件。
| 归档时间: |
|
| 查看次数: |
3760 次 |
| 最近记录: |