Я пытаюсь преобразовать строку JavaRDD в JavaRDD GenericRecord. Я могу сделать это, используя приведенный ниже код для простой схемы.
Dataset<Row> ds = session.read().format("avro").load("");
JavaRDD<Row> rdd = dataset.javaRDD();
JavaRDD<GenericRecord> genericRdd =rdd.map(rec -> {
Schema schema = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"demo\",\"namespace\":\"com.demo\",\"fields\":[{\"name\":\"abc\",\"type\":\"string\"}]}");
GenericRecord record = new GenericData.Record(schema);
record.put("abc", rec.getAs("abc"));
return record;});
Но моя схема является вложенной схемой и имеет много полей. Как создать обобщенную запись c с использованием вложенной схемы и скопировать значения без указания каждого имени поля?