我是 Spark Framework 的新手,并且需要一些建议。
我有这样的文件夹结构。
reports
- 20180101
- 20180102
- 20180103
- GHWEI.csv
- DSFSD.csv
- GHWEI.csv
报告(csv文件)每天分别存储。例如20180103
文件夹收集2018年1月3日的所有报告。
在读取csv文件之前,我需要检查路径的可用性。怎么做?
val reports = spark.read.option("delimiter", "|")
.csv("/reports/{20180101,20180102,20180103,}/*GHWEI*")
.orderBy("CREATE_DATE")
现在,如果没有名为20180101
,20180102
,20180103
的文件夹,Spark引发错误,表明没有这样的路径。仅当这些文件夹之一可用时,代码才有效。
第二个问题是如何检查读取后报告的值是否为空?
答案 0 :(得分:0)
我认为可以使用可在Scala程序上使用的Hadoop FileSystem java sdk检查文件。
这是整个文档:https://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html
我将您链接到可以适应您的情况的答案: https://stackoverflow.com/a/30408153/10623105
注意:澄清一下,Hadoop不适用于该文件夹。文件夹的概念在Hadoop生态系统上不存在。只是键和值文件系统,其中键是文件的整个路径,值是文件。