Я читаю файл Json, используя TextIO в Apache Beam и пытаюсь записать его обратно в файл (просто чтобы посмотреть, что читается).Данные выходного файла имеют неправильный формат
Ввод:
[{
"id": 1,
"username": "mrscarter",
"email_address": null,
"phone_number": null,
"first_name": "Beyonce",
"last_name": "Knowles-Carter",
"middle_name": null,
"sex": null,
"birthdate": "1981-09-04",
"join_date": "2016-01-01",
"previous_logins": 10000,
"last_ip": "testing"
},
{
"id": 2,
"username": "jayz",
"email_address": null,
"phone_number": null,
"first_name": "Shawn",
"last_name": "Carter",
"middle_name": "Corey",
"sex": null,
"birthdate": "1969-12-04",
"join_date": "2016-01-01",
"previous_logins": 20000,
"last_ip": null
}]
Ввод:
[{
"id": 1,
"username": "mrscarter",
"email_address": null,
"phone_number": null,
},
{
"id": 2,
"username": "jayz",
"email_address": null,
"phone_number": null,
"middle_name": null,
"sex": null,
"birthdate": "1981-09-04",
"join_date": "2016-01-01",
"middle_name": "Corey",
"sex": null,
"birthdate": "1969-12-04",
"join_date": "2016-01-01",
"previous_logins": 20000,
"last_ip": null
}]
"first_name": "Shawn",
"last_name": "Carter",
"first_name": "Beyonce",
"last_name": "Knowles-Carter",
"previous_logins": 10000,
"last_ip": "testing"
Почему это происходит?Есть ли способ записи в файл в последовательности?
Edit :
Это базовый конвейер, который читает Json и записывает его обратно в файл.
PipelineOptions options =
PipelineOptionsFactory.create();
Pipeline p = Pipeline.create(options);
Schema schema = new Schema.Parser().parse(new
File("C:\\Users\\abc\\\\beamexample\\src\\main\\schemas\\test.avsc"));
PCollection<String> inputJson=
p.apply("Read JSON", TextIO.read().
from("C:\\Users\\abc\\Desktop\\test.json"));
inputJson.apply(TextIO.write().withoutSharding().to("C:\\Users\\abc\\beamexample\\Output.txt"));
p.run();
Я не вижу другого способа проверить, есть ли у PCollection данные, поэтому я записываю их обратно в файл для проверки