当前位置: 首页 > 知识库问答 >
问题:

读取Spark中嵌套文件夹中的所有文件

孟增
2023-03-14

如果我们有一个文件夹,其中包含所有内容。txt文件,我们可以使用sc.textFile(“folder/*.txt”)读取所有这些文件。但是,如果我有一个文件夹,其中包含更多名为datewise的文件夹,例如,0304。。。,其中还包含一些<代码>。记录文件。如何在Spark中阅读这些内容?

在我的例子中,结构更加嵌套

共有3个答案

万高轩
2023-03-14

如果只想使用以名称“a”开头的文件,可以使用

sc.wholeTextFiles("/folder/a*/*/*.txt") or sc.wholeTextFiles("/folder/a*/a*/*.txt")

也我们可以使用*作为通配符。

沃瑾瑜
2023-03-14

Spark 3.0提供了一个选项递归FileLookup来从递归子文件夹加载文件。

val df= sparkSession.read
       .option("recursiveFileLookup","true")
      .option("header","true")
      .csv("src/main/resources/nested")

这会递归地从src/main/Resources/nested及其子文件夹加载文件。

马博学
2023-03-14

如果目录结构是规则的,可以这样说:

folder
├── a
│   ├── a
│   │   └── aa.txt
│   └── b
│       └── ab.txt
└── b
    ├── a
    │   └── ba.txt
    └── b
        └── bb.txt

您可以对每个嵌套级别使用*通配符,如下所示:

>>> sc.wholeTextFiles("/folder/*/*/*.txt").map(lambda x: x[0]).collect()

[u'file:/folder/a/a/aa.txt',
 u'file:/folder/a/b/ab.txt',
 u'file:/folder/b/a/ba.txt',
 u'file:/folder/b/b/bb.txt']
 类似资料:
  • 问题内容: 比方说,我有一个文件夹,名为和里面我有,和。如何使用Java和读取文件夹中的所有文件(如果可能的话)? 问题答案: 类似于以下内容应该可以帮助您,请注意,为了简单起见,我使用apache commons FileUtils而不是弄乱缓冲区和流…

  • 问题内容: 如何通过Java读取文件夹中的所有文件? 问题答案: Java 8提供了Files.walk API。

  • 问题内容: 我希望读取特定文件夹中的所有文本文件。文件名中没有任何通用模式-否则任务会更容易。 如果我也可以处理子文件夹,那将是很好,但是即使是基本的实现也已足够。 我尝试查看先前询问的相关问题,但是没有一个给出我需要的C和Linux特定答案。 编辑 :所以,这是我根据收到的答案写的- 并收到 错误 -pnp @ pnp-laptop:〜/ snort_rules_folder $ ./a.out

  • 问题内容: 我需要使用文件夹中文件的所有名称创建一个列表。 例如,如果我有: 我想将它们存储为 with 作为值。 用Java做到最好的方法是什么? PS:我在Mac OS X上 问题答案: 你可以这样做: 你只想获取JPEG文件还是所有文件?

  • 问题内容: 我开发了一个应用程序,可以从用户选择的文件夹中读取文件。它显示每个文件中有多少行代码。我只希望Java文件显示在文件选择器(扩展名为.java的文件)中。下面是我的代码: 我也进行了编辑,但是仍然无法正常工作,请告知请告知如何仅读取扩展名为.java的文件,换句话说,请仅从文件夹中读取java文件,请告知 问题答案: 您需要一个FilenameFilter。这应该为您工作:

  • 问题内容: 我想配置为顺序读取特定文件夹内的所有文件。 由于委托将尝试打开一个名为的文件,因此以下内容无效,这当然是无效的。我要在这里更改什么? 等效的xml配置将编写如下,如何将其重写为仅Java的配置? 问题答案: 我认为您应该使用。