Hi, I'm new to Flink and just taking the first steps...
I want to parse a CSV file that contains a date and time as the first field, then some values: > 07.02.2015 49.9871 234.677 ... So I’d like to use this POJO: > import java.util.Date; > > public class DataPoint > { > private String dateStr; // String value of date > private Date date; // the actual date > ... > > private static SimpleDateFormat dateFormat = new > SimpleDateFormat("dd.MM.yyyy"); > > public DataPoint() {} > > // String setter, converts to Date > public void setDateStr(String value) { > this.dateStr = value; > try { > this.date = dateFormat.parse(dateStr); // parse string and store > date > } catch (ParseException e) { > e.printStackTrace(); > } > } > > public String getDateStr() { > return this.dateStr; > } > > public Date getDate() { > return this.date; > } > … > } ...and pass it to the CSVReader: > DataSet<DataPoint> csvInput = env.readCsvFile(filename) > .pojoType(DataPoint.class, "dateStr", ...); However, this fails with an exception: > Exception in thread "main" java.lang.IllegalArgumentException: The type > 'java.util.Date' is not supported for the CSV input format. > at > org.apache.flink.api.common.io.GenericCsvInputFormat.setFieldTypesGeneric(GenericCsvInputFormat.java:236) > at > org.apache.flink.api.java.io.CsvInputFormat.setFieldTypes(CsvInputFormat.java:115) > at > org.apache.flink.api.java.io.CsvInputFormat.<init>(CsvInputFormat.java:77) > at > org.apache.flink.api.java.io.CsvInputFormat.<init>(CsvInputFormat.java:61) > at org.apache.flink.api.java.io.CsvReader.pojoType(CsvReader.java:295) > at de.dfki.iui.MyJob.main(MyJob.java:60) I managed to work around this by storing the long value of Date.getTime() instead of Date, but: Does the POJO semantic really need to be that strict? Wouldn't it be sufficient if there was an appropriate getter/setter for the member names given to pojoType()? Best regards, -Stefan