java - Spark cannot convert LocalDate while loading data from cassandra -
while loading data cassandra, spark throws java.lang.illegalargumentexception because of columns in table of type localdate
below repository code :-
private transient sparkconf sparkconf; private sparkcontext sc; public list<person> findall() { sparkconf=new sparkconf(); sparkconf.setappname("investhry"); sparkconf.setmaster("local[4]"); sparkconf.set("spark.cassandra.connection.host", "localhost"); sc=new javasparkcontext(sparkconf); javardd<person> personjavardd=javafunctions(sc).cassandratable("java_api","person",maprowto(person.class)); list<person> people=personjavardd.collect(); sc.stop(); return people; } below error :-
java.lang.illegalargumentexception: unsupported type: java.time.localdate @ com.datastax.spark.connector.types.typeconverter$.forcollectiontype(typeconverter.scala:930) @ com.datastax.spark.connector.types.typeconverter$.fortype(typeconverter.scala:943) @ com.datastax.spark.connector.types.typeconverter$.fortype(typeconverter.scala:962) @ com.datastax.spark.connector.rdd.reader.gettabledatatomappedtypeconverter.converter(gettabledatatomappedtypeconverter.scala:108) @ com.datastax.spark.connector.rdd.reader.gettabledatatomappedtypeconverter.com$datastax$spark$connector$rdd$reader$gettabledatatomappedtypeconverter$$converter(gettabledatatomappedtypeconverter.scala:117) @ com.datastax.spark.connector.rdd.reader.gettabledatatomappedtypeconverter$$anonfun$7.apply(gettabledatatomappedtypeconverter.scala:184) @ com.datastax.spark.connector.rdd.reader.gettabledatatomappedtypeconverter$$anonfun$7.apply(gettabledatatomappedtypeconverter.scala:181) @ scala.collection.traversablelike$$anonfun$map$1.apply(traversablelike.scala:244) @ scala.collection.traversablelike$$anonfun$map$1.apply(traversablelike.scala:244) @ scala.collection.iterator$class.foreach(iterator.scala:727) @ scala.collection.abstractiterator.foreach(iterator.scala:1157) @ scala.collection.maplike$defaultkeyset.foreach(maplike.scala:174) @ scala.collection.traversablelike$class.map(traversablelike.scala:244) @ scala.collection.abstractset.scala$collection$setlike$$super$map(set.scala:47) @ scala.collection.setlike$class.map(setlike.scala:93) @ scala.collection.abstractset.map(set.scala:47) @ com.datastax.spark.connector.rdd.reader.gettabledatatomappedtypeconverter.<init>(gettabledatatomappedtypeconverter.scala:181) @ com.datastax.spark.connector.rdd.reader.classbasedrowreader.<init>(classbasedrowreader.scala:21) @ com.datastax.spark.connector.rdd.reader.classbasedrowreaderfactory.rowreader(classbasedrowreader.scala:44) @ com.datastax.spark.connector.rdd.reader.classbasedrowreaderfactory.rowreader(classbasedrowreader.scala:39) @ com.datastax.spark.connector.rdd.cassandratablerowreaderprovider$class.rowreader(cassandratablerowreaderprovider.scala:48) @ com.datastax.spark.connector.rdd.cassandratablescanrdd.rowreader$lzycompute(cassandratablescanrdd.scala:62) @ com.datastax.spark.connector.rdd.cassandratablescanrdd.rowreader(cassandratablescanrdd.scala:62) @ com.datastax.spark.connector.rdd.cassandratablerowreaderprovider$class.verify(cassandratablerowreaderprovider.scala:138)
try using java.util.date instead of localdate in person class, should solve problem.
Comments
Post a Comment