Я хочу изменить значение в Protobuf, а затем преобразовать protobuf в Spark DataSet Row - PullRequest
1 голос
/ 14 июня 2019

Я новичок в Spark и хочу внести изменения в существующий протобуф.После внесения изменений я хочу отобразить это сообщение protobuf на строку набора данных Spark.Поскольку сообщение protobuf является сложным и глубоко вложенным.

Я не хочу создавать схему, а затем копировать значения, что утомительно и сложно для написания кода

Примерно так:

 Dataset<Row> events = spark
                .readStream()
                .format("kafka")
                .load();

//call mapper
events.mapPartitions()

....
...


//mapper code

ProtoMessage.message

//create schema
StructType SCHEMA = new StructType()
        .add("value1", DataTypes.StringType, false)
        .add("value2", DataTypes.StringType, false)


//create columns
Object[] columnes = {
message.getValue1(),
message.getValue2()
....

}

//create a row
Stream.<Row>of(new GenericRowWithSchema(columns, SCHEMA));

Однако я не знаю точного количества столбцов (ну, я знаю, но практически невозможно передать весь код), в общем, я хочу получить протобуф, изменить одно поле и затем преобразовать все вРяд данных

Я изучил sparksql-protobuf , но я хочу также скопировать значения после вывода схемы.

Я ценю помощь!

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