Databricks spark-csv 检查空文件
Databricks spark-csv check for empty file
我正在尝试使用以下代码将 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...
}
我正在尝试使用以下代码将 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...
}