【问题标题】:How do I read in all files including subfolders when streaming from folder using spark streaming in scala? [duplicate]在scala中使用火花流从文件夹流式传输时,如何读取包括子文件夹在内的所有文件? [复制]
【发布时间】:2021-05-28 03:42:18
【问题描述】:

我有一些文件想要使用 Spark 结构化流进行流式传输。结构是这样的:

myFolder
└── subFolderOne
    ├── fileOne.gz
    ├── fileTwo.gz
    └── fileThree.gz
└── subFolderTwo
    ├── fileFour.gz
    ├── fileFive.gz
    ├── fileSix.gz

当我只执行以下操作时,它会起作用:

val df = spark
  .readStream
  .format("json")
  .schema(schema)
  .option("maxFilesPerTrigger", 1)
  .json("/myFolder/subFolderOne/")     <-------

但我想在根级别阅读它:/myFolder/,以便它选择任意数量的子文件夹中的所有文件。这可能吗?

我正在使用 spark 2.4.5scala 2.11.6

【问题讨论】:

  • @blackbishop - 我知道 Spark 3.0 提供了一个选项 recursiveFileLookup 但必须有比列出所有文件更好的方法。我在许多子文件夹中有数千个文件。
  • @blackbishop 找到了一种使用通配符的方法。

标签: scala apache-spark spark-streaming


【解决方案1】:

原来如此简单:

之前:

.json("/myFolder/") 

之后

.json("/myFolder/*") 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-24
    • 2018-06-07
    • 2012-02-06
    • 2017-07-05
    • 2013-06-14
    • 1970-01-01
    • 2017-04-28
    • 2016-10-25
    相关资源
    最近更新 更多