Для обработки данных из API я поместил весь набор данных в формате JSONArray в HDFS как:
[{"a":"b"},{"a":"d"} .... ]
Я знаю, что этот не подходит формат JSON, и чтоМне нужен формат записей JSON. Так что у него нет хорошего раздела HDFS, и его трудно проанализировать и прочитать с помощью Spark.
Spark может анализировать схему и номер строки.Но у меня есть только один раздел (логика).Чтобы обработать этот набор данных и отправить его в Kafka, я хочу сделать простое перераспределение 1011 * с помощью Spark.
На самом деле, мы скажем, что мой набор данных составляет 40 ГБ, и мои исполнители могут 't превышает 10 ГБ для каждого исполнителя.
Как и следовало ожидать, он не работает, потому что он не может читать все в памяти.
Web API, являющийся моим источником данных, не изменит формат,Я должен это сделать.
Но где?
Если я не смогу дать больше ресурсов своему исполнителю, я не смогу прочитать и перераспределить его.
Единственное решение, которое я вижу для предварительной обработки этих данных в скрипте Bash, до того, как "hdfs поместит" их в хороший формат записи json, что позволило мне прочитать их в Spark.Я прав?
Нет ли возможности прочитать этот файл через InputStream, проанализировать поток и создать файлы записи json напрямую?Является ли NameNode разделить в HDFS эти данные с stream.write?
Спасибо за вашу помощь.