1

次のコードを使用して、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 をスローします。空のファイルを処理したいのですが、この例外が常に空のファイルを意味するとは思いたくありません。指定されたファイルが空かどうかを確認するためのベスト プラクティスは何ですか?

4

1 に答える 1

1

明示的に定義されていませんpathが、ファイルへのパスを含む文字列であると想定しています。その場合は、BufferedReaderオブジェクトで開いて、そこから読み取れるかどうかを確認できます。

BufferedReader br = new BufferedReader(new FileReader(path));     
if (br.readLine() == null) {
    // handle empty file...
} else {
    //do something...
}
于 2016-08-08T22:18:48.550 に答える