我的代码从同一个SparkSession对象生成一系列数据集,并将它们作为Parquet文件写入文件夹。我希望看到每次写入都在该文件夹中具体化一个新的Parquet文件,但代码似乎在第一次写入后挂起。
代码如下所示:
// Called in a loop with different values for the dataset parameter
void writeDataset(Dataset[Row] dataset) {
DataFrameWriter[Row] writer = dataset.write();
writer.format("parquet");
writer.save("/tmp/folder");
}
第一次写操作确实在上面的/tmp/文件夹中生成了一个parquet文件和一个_SUCCESS文件,但是对该方法的后续调用似乎在保存()方法处挂起。
当在循环中调用时,如何使多个数据集分别在一个文件夹中生成一个Parquet(或Avro或JSON)文件?
1条答案
按热度按时间juud5qan1#
我可以使用writer上的SaveMode.append选项让它添加新文件:https://spark.apache.org/docs/3.2.1/api/java/org/apache/spark/sql/SaveMode.html