【问题标题】:Reading whole directory with Spark except one file用 Spark 读取整个目录,除了一个文件
【发布时间】:2021-09-24 10:54:31
【问题描述】:

我有以下包含这些 CSV 文件的目录:

/data/one.csv
/data/two.csv
/data/three.csv
/data/four.csv

如果我想阅读所有内容,我可以这样做:

/data/*.csv

但我似乎无法阅读所有内容,除了four.csv

这个:

/data/*[^four]*.csv

似乎可行,但我认为如果文件列表更大,那么这种读取方式可能是错误的(因为使用双通配符)。

有什么好办法吗?我也知道:

/data/{one,two,three,^four}.csv

会解决这个特定的情况,但我需要 except 方法以满足未来的需要。

非常感谢!

【问题讨论】:

    标签: apache-spark hadoop pyspark hdfs


    【解决方案1】:

    我不能 100% 确定这种方法是否有效,但您可以尝试。您可以使用 Bash/Python 或任何脚本来扫描文件夹中的所有 csv 文件,但不能使用名称 four.csv。 spark 的输入将是(假设您有文件:one.csv、two.csv、three.csv、four.csv、five.csv ......最多 n.csv 文件) PathToFiles=[/data/one.csv, /data/two.csv, /data/three.csv, /data/five.csv, ..., /data/n.csv]

    然后就可以使用了(代码在python中) filesRDD = spark.sparkContext.wholeTextFiles(",".join(PathToFiles))

    我用java写过类似的代码,印象中是可以的,你可以试试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多