Я пытаюсь добавить все содержимое файлов из папки потоковой передачи с помощью Spark, но он создает множество файлов деталей каждый раз, когда запускается микропакет. Ниже мой код.
SparkSession session = SparkSession.builder().appName("SparkJava").getOrCreate();
JavaSparkContext sparkContext = new JavaSparkContext(session.sparkContext());
StructType personSchema = new StructType().add("firstName", "string").add("lastName", "string").add("age",
"long");
// 3 - Создаем набор данных, представляющий поток входных файлов
Dataset<Patient> personStream = session.readStream().schema(personSchema).json("file:///C:/jsons1")
.as(Encoders.bean(Patient.class));
// Когда данные приходят из потока, эти шаги будут выполнены
// 4 - Создаем временную таблицу, чтобы мы могли использовать SQL-запросы
personStream.createOrReplaceTempView("people");
String sql = "SELECT * FROM people";
Dataset<Row> ageAverage = session.sql(sql);
StreamingQuery query = ageAverage.coalesce(1).writeStream().outputMode(OutputMode.Append())
.option("path", "file:///C:/output").format("json").trigger(Trigger.ProcessingTime("10 seconds")).option("checkpointLocation", "file:///C:/output")
.partitionBy("age").start();
Предложите способ объединить все содержимое файла из исходной папки в один файл в выходной папке.