【发布时间】:2021-04-27 10:21:55
【问题描述】:
我有一个目录,其中的文件看起来像 abc_00_00.csv , abc_001_00.csv , abc_002_00.csv, def_00_00.csv
我只想要那些匹配用户输入的文件,我正在尝试下面的方法,但它在 spark 中不起作用
new File("dbfs:/s3path").listFiles.filter(_.getName.startsWith("abc_*")).foreach(println)
错误
java.lang.NullPointerException
spark 中有什么方法可以让我在 foo 循环中迭代匹配文件吗?
【问题讨论】:
-
您的目录不存在。此外,您不希望在
startsWith中使用星号,只需startsWith("abc_")。 -
对不起,我没有检查本地目录,我正在搜索 s3 路径
-
File不适用于 s3。为此,您需要一个 aws 客户端。无论如何,您获得 NPE 的原因是因为目录不存在:.listFiles在这种情况下返回 null。
标签: scala apache-spark