我正在尝试使用以下代码将TSV文件读入DataFrame对象:
SQLContext sqlContext = new SQLContext(javaSparkContext);
Map<String, String> sqlContextOptions = new HashMap<>();
sqlContextOptions.put("header", "true");
sqlContextOptions.put("delimiter", "\t");
DataFrame df = sqlContext.read()
.format("com.databricks.spark.csv")
.options(sqlContextOptions)
.load(path);
现在,如果遇到空文件,该代码将引发UnsupportedOperationException。我想处理空文件,但我不想假定此异常将始终意味着空文件。检查给定文件是否为空的最佳实践是什么?
我没有看到path
明确定义的内容,但是我假设它是一个包含文件路径的字符串。如果是这样,您可以在一个BufferedReader
对象中打开它,并检查是否可以读取它。
BufferedReader br = new BufferedReader(new FileReader(path));
if (br.readLine() == null) {
// handle empty file...
} else {
//do something...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句