Вы приближаетесь к Apache Beam (Поток данных) с неправильного направления.
Вы пытаетесь прочитать строку и затем применить преобразования к этой строке по одному.
Вместо этого вынужно смотреть на Beam, являющийся параллельным процессором.Вы будете читать все строки ReadFromText()
, а затем применять преобразования к каждой строке параллельно.
Посмотрите на функцию beam.ParDo()
.Это позволит вам создать класс, который сможет обрабатывать каждую строку вашего файла JSON.В этом случае ваш код будет состоять из основных шагов, таких как ReadFromText()
, ParDo(MyJsonProcessor())
, WriteToText()
.
Помните, что ваш JSON должен быть JSON с разделителем-новой строкой.http://ndjson.org/