Spark - сборка json полезной нагрузки для внешнего хранилища данных - PullRequest
1 голос
/ 26 марта 2020

У меня есть искровое задание, которое требует записи во внешний источник данных с использованием API REST. API принимает json полезную нагрузку. Каким был бы эффективный способ преобразования набора строк в json?

Формат jsons должен выглядеть примерно так -

'{A: val1, B:val2,  C: val3 }
{A: val4, B:val5,  C: val6 }
{A: val7, B:val8,  C: val9 }'

В настоящее время я думаю об отправке полезной нагрузки foreachpartition

JavaRDD<Row> rowRDD = sqlRDD.map((Function<Row, Row>) record -> { 
    ...   
    return RowFactory.create (col1, col2, col3);
}).foreachPartition( new MakeRestCall());


class MakeRestCall implements VoidFunction<Iterator<Row>> {
    @Override
    public void call(Iterator<Row> rowIterator) throws Exception {
        StringBuilder sbPayload = new StringBuilder();
    while(rowIterator.hasNext()) {
        Row row = rowIterator.next();
        Gson gson = new Gson();
        sbPayload.append( gson.toJson(row));
    }
    // use http request to send the payload
    }

Хотелось бы что-то вроде этой работы или есть ли лучшие способы сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...