I am working with Spark 1.1.0 and I believe Timestamp is a supported data type for Spark SQL. However I keep getting this MatchError for java.sql.Timestamp when I try to use reflection to register a Java Bean with Timestamp field. Anything wrong with my code below?
public static class Event implements Serializable { private String name; private Timestamp time; public String getName() { return name; } public void setName(String name) { this.name = name; } public Timestamp getTime() { return time; } public void setTime(Timestamp time) { this.time = time; } } @Test public void testTimeStamp() { JavaSparkContext sc = new JavaSparkContext("local", "timestamp"); String[] data = {"1,2014-01-01", "2,2014-02-01"}; JavaRDD<String> input = sc.parallelize(Arrays.asList(data)); JavaRDD<Event> events = input.map(new Function<String,Event>() { public Event call(String arg0) throws Exception { String[] c = arg0.split(","); Event e = new Event(); e.setName(c[0]); DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); e.setTime(new Timestamp(fmt.parse(c[1]).getTime())); return e; } }); JavaSQLContext sqlCtx = new JavaSQLContext(sc); JavaSchemaRDD schemaEvent = sqlCtx.applySchema(events, Event.class); schemaEvent.registerTempTable("event"); sc.stop(); }