Я получаю CSV о своем классе, и мне нужно получить значения для создания POJO. Мне не нужно открывать file.csv в каталог, элементы, разделенные запятыми, передаются Flink в EventDeserializationSchema, а этот используется в классе событий для обработки каждого отдельного события.
Вот пример:
IN: 'Adam', 'Smith', 66, .... '12: 01: 00.000' - ›OUT: pojo
Для этого я использую: https://github.com/FasterXML/jackson-dataformats-text/tree/master/csv
Это мой класс событий, который должен помочь, на самом деле в данный момент ничего не делает.
import java.io.Serializable;
import org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.ObjectReader;
import org.apache.flink.shaded.jackson2.com.fasterxml.jackson.dataformat.csv.CsvMapper;
import org.apache.flink.shaded.jackson2.com.fasterxml.jackson.dataformat.csv.CsvSchema;
public class Event implements Serializable {
CsvSchema schema = CsvSchema.builder()
.addColumn("firstName")
.addColumn("lastName")
.addColumn("age", CsvSchema.ColumnType.NUMBER)
.addColumn("time")
.build();
CsvSchema schema = CsvSchema.emptySchema().withHeader();
CsvSchema bootstrapSchema = CsvSchema.emptySchema().withHeader();
ObjectMapper mapper = new CsvMapper();
mapper.readerFor(Pojo.class).with(bootstrapSchema).readValue(??);
return Pojo
}
Это мой класс Pojo:
public class Pojo {
public String firstName;
public String lastName;
private int age;
public String time;
public Pojo(String firstName, String lastName, int age, String time) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.time =time;
}
}
Любая помощь, чтобы заставить класс вернуть Pojo, была бы очень признательна.