Kairat Beq created SPARK-7365:
---------------------------------

             Summary: Unable to custom bind the column in cached query result 
(temp table)
                 Key: SPARK-7365
                 URL: https://issues.apache.org/jira/browse/SPARK-7365
             Project: Spark
          Issue Type: Bug
          Components: SQL
    Affects Versions: 1.2.2
            Reporter: Kairat Beq


Doing a query to cassandra table as

SchemaRDD s = cassandraSQLContext.sql("select user.id as user_id from user");
// user.id is UUID in table definition
s.registerTempTable( "my_user" );
cassandraSQLContext.cacheTable( "my_user" );
s.count(); // throws the following exception

Caused by: org.apache.spark.SparkException: Job aborted due to stage failure: 
Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 
0.0 (TID 0, localhost): java.lang.ClassCastException: java.util.UUID cannot be 
cast to java.lang.String
        at 
org.apache.spark.sql.catalyst.expressions.GenericRow.getString(Row.scala:183)
        at 
org.apache.spark.sql.columnar.StringColumnStats.gatherStats(ColumnStats.scala:208)
        at 
org.apache.spark.sql.columnar.NullableColumnBuilder$class.appendFrom(NullableColumnBuilder.scala:56)
        at 
org.apache.spark.sql.columnar.NativeColumnBuilder.org$apache$spark$sql$columnar$compression$CompressibleColumnBuilder$$super$appendFrom(ColumnBuilder.scala:87)
        at 
org.apache.spark.sql.columnar.compression.CompressibleColumnBuilder$class.appendFrom(CompressibleColumnBuilder.scala:78)
        at 
org.apache.spark.sql.columnar.NativeColumnBuilder.appendFrom(ColumnBuilder.scala:87)
        at 
org.apache.spark.sql.columnar.InMemoryRelation$$anonfun$3$$anon$1.next(InMemoryColumnarTableScan.scala:125)
        at 
org.apache.spark.sql.columnar.InMemoryRelation$$anonfun$3$$anon$1.next(InMemoryColumnarTableScan.scala:112)
        at 
org.apache.spark.storage.MemoryStore.unrollSafely(MemoryStore.scala:249)
        at 
org.apache.spark.CacheManager.putInBlockManager(CacheManager.scala:163)
        at org.apache.spark.CacheManager.getOrCompute(CacheManager.scala:70)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:245)
        at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:35)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:280)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:247)
        at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:35)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:280)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:247)
        at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:35)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:280)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:247)
        at 
org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:68)
        at 
org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)
        at org.apache.spark.scheduler.Task.run(Task.scala:56)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:198)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)


How can I map the query selected row items, something like we do with 
mapColumnTo() in

rdd = CassandraJavaUtil.javaFunctions(sc)
                    .cassandraTable( "ks", "user", mapColumnTo(UUID.class) 
).select( "user_id");



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to