【问题标题】:Databricks spark-csv check for empty fileDatabricks spark-csv 检查空文件
【发布时间】:2016-12-14 19:35:34
【问题描述】:

我正在尝试使用以下代码将 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。我想处理空文件,但我不想假设这个异常总是意味着一个空文件。检查给定文件是否为空的最佳做法是什么?

【问题讨论】:

    标签: java csv apache-spark databricks


    【解决方案1】:

    我没有看到path 明确定义,但我假设它是一个包含文件路径的字符串。如果是这种情况,您可以在 BufferedReader 对象中打开它并检查您是否可以从中读取。

    BufferedReader br = new BufferedReader(new FileReader(path));     
    if (br.readLine() == null) {
        // handle empty file...
    } else {
        //do something...
    }
    

    【讨论】:

    • 那么,你必须先手动检查文件吗?真可惜。感觉应该是内置了空文件检查之类的东西。
    • 是的,我不知道任何其他方式。我检查了 Java 8 中较新的函数,但没有任何东西(据我所知)可以自动检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 2021-05-27
    • 2013-12-16
    • 2020-05-09
    • 2022-10-21
    相关资源
    最近更新 更多