[ 
https://issues.apache.org/jira/browse/SPARK-18220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15701117#comment-15701117
 ] 

Jerryjung commented on SPARK-18220:
-----------------------------------

[~cloud_fan]
For further information, tables were created in spark 1.X version.
The original data's orc dump is below.
===========================================================================================================
File Version: 0.12 with HIVE_8732
16/11/28 15:11:51 INFO orc.ReaderImpl: Reading ORC rows from 
hdfs://xxx:8020/xxx/part-00000 with {include: null, offset: 0, length: 
9223372036854775807}
16/11/28 15:11:51 INFO orc.RecordReaderFactory: Schema is not specified on 
read. Using file schema.
Rows: 7
Compression: ZLIB
Compression size: 262144
Type: 
struct<aaa:varchar(2),bbb:varchar(50),ccc:varchar(6),ddd:varchar(50),eee:timestamp>

Log message is below.
===========================================================================================================
16/11/28 15:35:31 INFO CatalystSqlParser: Parsing command: varchar(6)
16/11/28 15:35:31 INFO CatalystSqlParser: Parsing command: varchar(50)
16/11/28 15:35:31 INFO CatalystSqlParser: Parsing command: varchar(4)
16/11/28 15:35:31 INFO CatalystSqlParser: Parsing command: varchar(50)
16/11/28 15:35:31 INFO CatalystSqlParser: Parsing command: timestamp
16/11/28 15:35:31 INFO MemoryStore: Block broadcast_2 stored as values in 
memory (estimated size 258.9 KB, free 398.7 MB)
16/11/28 15:35:31 INFO MemoryStore: Block broadcast_2_piece0 stored as bytes in 
memory (estimated size 23.1 KB, free 398.7 MB)
16/11/28 15:35:31 INFO BlockManagerInfo: Added broadcast_2_piece0 in memory on 
80.80.11.97:47902 (size: 23.1 KB, free: 399.0 MB)
16/11/28 15:35:31 INFO SparkContext: Created broadcast 2 from processCmd at 
CliDriver.java:376
16/11/28 15:35:31 INFO PerfLogger: <PERFLOG method=OrcGetSplits 
from=org.apache.hadoop.hive.ql.io.orc.ReaderImpl>
16/11/28 15:35:31 INFO OrcInputFormat: FooterCacheHitRatio: 0/0
16/11/28 15:35:31 INFO PerfLogger: </PERFLOG method=OrcGetSplits 
start=1480314931501 end=1480314931511 duration=10 
from=org.apache.hadoop.hive.ql.io.orc.ReaderImpl>
16/11/28 15:35:31 INFO SparkContext: Starting job: processCmd at 
CliDriver.java:376
16/11/28 15:35:31 INFO DAGScheduler: Got job 1 (processCmd at 
CliDriver.java:376) with 2 output partitions
16/11/28 15:35:31 INFO DAGScheduler: Final stage: ResultStage 1 (processCmd at 
CliDriver.java:376)
16/11/28 15:35:31 INFO DAGScheduler: Parents of final stage: List()
16/11/28 15:35:31 INFO DAGScheduler: Missing parents: List()
16/11/28 15:35:31 INFO DAGScheduler: Submitting ResultStage 1 
(MapPartitionsRDD[9] at processCmd at CliDriver.java:376), which has no missing 
parents
16/11/28 15:35:31 INFO MemoryStore: Block broadcast_3 stored as values in 
memory (estimated size 8.5 KB, free 398.7 MB)
16/11/28 15:35:31 INFO MemoryStore: Block broadcast_3_piece0 stored as bytes in 
memory (estimated size 4.5 KB, free 398.7 MB)
16/11/28 15:35:31 INFO BlockManagerInfo: Added broadcast_3_piece0 in memory on 
80.80.11.97:47902 (size: 4.5 KB, free: 399.0 MB)
16/11/28 15:35:31 INFO SparkContext: Created broadcast 3 from broadcast at 
DAGScheduler.scala:996
16/11/28 15:35:31 INFO DAGScheduler: Submitting 2 missing tasks from 
ResultStage 1 (MapPartitionsRDD[9] at processCmd at CliDriver.java:376)
16/11/28 15:35:31 INFO TaskSchedulerImpl: Adding task set 1.0 with 2 tasks
16/11/28 15:35:31 INFO FairSchedulableBuilder: Added task set TaskSet_1.0 tasks 
to pool default
16/11/28 15:35:31 INFO TaskSetManager: Starting task 0.0 in stage 1.0 (TID 2, 
localhost, executor driver, partition 0, ANY, 5984 bytes)
16/11/28 15:35:31 INFO TaskSetManager: Starting task 1.0 in stage 1.0 (TID 3, 
localhost, executor driver, partition 1, ANY, 5984 bytes)
16/11/28 15:35:31 INFO Executor: Running task 0.0 in stage 1.0 (TID 2)
16/11/28 15:35:31 INFO Executor: Running task 1.0 in stage 1.0 (TID 3)
....
16/11/28 15:35:31 INFO OrcRawRecordMerger: min key = null, max key = null
16/11/28 15:35:31 INFO OrcRawRecordMerger: min key = null, max key = null
16/11/28 15:35:31 INFO ReaderImpl: Reading ORC rows from 
...
16/11/28 15:35:31 ERROR Executor: Exception in task 0.0 in stage 1.0 (TID 2)
java.lang.ClassCastException: 
org.apache.hadoop.hive.serde2.io.HiveVarcharWritable cannot be cast to 
org.apache.hadoop.io.Text
        at 
org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableStringObjectInspector.getPrimitiveWritableObject(WritableStringObjectInspector.java:41)
        at 
org.apache.spark.sql.hive.HiveInspectors$$anonfun$unwrapperFor$23.apply(HiveInspectors.scala:529)
        at 
org.apache.spark.sql.hive.HadoopTableReader$$anonfun$14$$anonfun$apply$15.apply(TableReader.scala:419)
        at 
org.apache.spark.sql.hive.HadoopTableReader$$anonfun$14$$anonfun$apply$15.apply(TableReader.scala:419)
        at 
org.apache.spark.sql.hive.HadoopTableReader$$anonfun$fillObject$2.apply(TableReader.scala:435)
        at 
org.apache.spark.sql.hive.HadoopTableReader$$anonfun$fillObject$2.apply(TableReader.scala:426)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
        at 
org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:232)
        at 
org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:225)
        at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:819)
        at 
org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$25.apply(RDD.scala:819)
        at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
        at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:319)
        at org.apache.spark.rdd.RDD.iterator(RDD.scala:283)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
        at org.apache.spark.scheduler.Task.run(Task.scala:108)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:282)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

I created a separate table by querying an existing table in hive for testing 
purposes.
The table is normally queried by spark-sql.
The orc dump information is as follows:
===========================================================================================================
Type: 
struct<_col0:string,_col1:string,_col2:string,_col3:string,_col4:timestamp>

Log message is below.
===========================================================================================================
16/11/28 15:37:51 INFO CatalystSqlParser: Parsing command: string
16/11/28 15:37:51 INFO CatalystSqlParser: Parsing command: string
16/11/28 15:37:51 INFO CatalystSqlParser: Parsing command: string
16/11/28 15:37:51 INFO CatalystSqlParser: Parsing command: string
16/11/28 15:37:51 INFO CatalystSqlParser: Parsing command: timestamp
16/11/28 15:37:51 INFO MemoryStore: Block broadcast_4 stored as values in 
memory (estimated size 258.9 KB, free 398.5 MB)
16/11/28 15:37:51 INFO MemoryStore: Block broadcast_4_piece0 stored as bytes in 
memory (estimated size 23.1 KB, free 398.4 MB)
16/11/28 15:37:51 INFO BlockManagerInfo: Added broadcast_4_piece0 in memory on 
80.80.11.97:47902 (size: 23.1 KB, free: 399.0 MB)
16/11/28 15:37:51 INFO SparkContext: Created broadcast 4 from processCmd at 
CliDriver.java:376
16/11/28 15:37:51 INFO PerfLogger: <PERFLOG method=OrcGetSplits 
from=org.apache.hadoop.hive.ql.io.orc.ReaderImpl>
16/11/28 15:37:51 INFO OrcInputFormat: FooterCacheHitRatio: 0/0
16/11/28 15:37:51 INFO PerfLogger: </PERFLOG method=OrcGetSplits 
start=1480315071479 end=1480315071489 duration=10 
from=org.apache.hadoop.hive.ql.io.orc.ReaderImpl>
16/11/28 15:37:51 INFO SparkContext: Starting job: processCmd at 
CliDriver.java:376
16/11/28 15:37:51 INFO DAGScheduler: Got job 2 (processCmd at 
CliDriver.java:376) with 2 output partitions
16/11/28 15:37:51 INFO DAGScheduler: Final stage: ResultStage 2 (processCmd at 
CliDriver.java:376)
16/11/28 15:37:51 INFO DAGScheduler: Parents of final stage: List()
16/11/28 15:37:51 INFO DAGScheduler: Missing parents: List()
16/11/28 15:37:51 INFO DAGScheduler: Submitting ResultStage 2 
(MapPartitionsRDD[14] at processCmd at CliDriver.java:376), which has no 
missing parents
16/11/28 15:37:51 INFO MemoryStore: Block broadcast_5 stored as values in 
memory (estimated size 8.4 KB, free 398.4 MB)
16/11/28 15:37:51 INFO MemoryStore: Block broadcast_5_piece0 stored as bytes in 
memory (estimated size 4.5 KB, free 398.4 MB)
16/11/28 15:37:51 INFO BlockManagerInfo: Added broadcast_5_piece0 in memory on 
80.80.11.97:47902 (size: 4.5 KB, free: 398.9 MB)
16/11/28 15:37:51 INFO SparkContext: Created broadcast 5 from broadcast at 
DAGScheduler.scala:996
16/11/28 15:37:51 INFO DAGScheduler: Submitting 2 missing tasks from 
ResultStage 2 (MapPartitionsRDD[14] at processCmd at CliDriver.java:376)
16/11/28 15:37:51 INFO TaskSchedulerImpl: Adding task set 2.0 with 2 tasks
16/11/28 15:37:51 INFO FairSchedulableBuilder: Added task set TaskSet_2.0 tasks 
to pool default
16/11/28 15:37:51 INFO TaskSetManager: Starting task 0.0 in stage 2.0 (TID 4, 
localhost, executor driver, partition 0, ANY, 5941 bytes)
16/11/28 15:37:51 INFO TaskSetManager: Starting task 1.0 in stage 2.0 (TID 5, 
localhost, executor driver, partition 1, ANY, 5941 bytes)
16/11/28 15:37:51 INFO Executor: Running task 0.0 in stage 2.0 (TID 4)
16/11/28 15:37:51 INFO Executor: Running task 1.0 in stage 2.0 (TID 5)
...
16/11/28 15:37:51 INFO OrcRawRecordMerger: min key = null, max key = null
16/11/28 15:37:51 INFO ReaderImpl: Reading ORC rows from 
...
16/11/28 15:37:51 INFO Executor: Finished task 0.0 in stage 2.0 (TID 4). 1563 
bytes result sent to driver
16/11/28 15:37:51 INFO TaskSetManager: Finished task 0.0 in stage 2.0 (TID 4) 
in 39 ms on localhost (executor driver) (1/2)
16/11/28 15:37:51 INFO Executor: Finished task 1.0 in stage 2.0 (TID 5). 1464 
bytes result sent to driver
16/11/28 15:37:51 INFO TaskSetManager: Finished task 1.0 in stage 2.0 (TID 5) 
in 39 ms on localhost (executor driver) (2/2)
16/11/28 15:37:51 INFO TaskSchedulerImpl: Removed TaskSet 2.0, whose tasks have 
all completed, from pool default
16/11/28 15:37:51 INFO DAGScheduler: ResultStage 2 (processCmd at 
CliDriver.java:376) finished in 0.044 s
16/11/28 15:37:51 INFO DAGScheduler: Job 2 finished: processCmd at 
CliDriver.java:376, took 0.057510 s

The only difference between the two tables in my opinion is a struct.
Is there anything else I should check?

> ClassCastException occurs when using select query on ORC file
> -------------------------------------------------------------
>
>                 Key: SPARK-18220
>                 URL: https://issues.apache.org/jira/browse/SPARK-18220
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 2.1.0
>            Reporter: Jerryjung
>              Labels: orcfile, sql
>
> Error message is below.
> {noformat}
> ==========================================================
> 16/11/02 16:38:09 INFO ReaderImpl: Reading ORC rows from 
> hdfs://xxx/part-00022 with {include: [true], offset: 0, length: 
> 9223372036854775807}
> 16/11/02 16:38:09 INFO Executor: Finished task 17.0 in stage 22.0 (TID 42). 
> 1220 bytes result sent to driver
> 16/11/02 16:38:09 INFO TaskSetManager: Finished task 17.0 in stage 22.0 (TID 
> 42) in 116 ms on localhost (executor driver) (19/20)
> 16/11/02 16:38:09 ERROR Executor: Exception in task 10.0 in stage 22.0 (TID 
> 35)
> java.lang.ClassCastException: 
> org.apache.hadoop.hive.serde2.io.HiveVarcharWritable cannot be cast to 
> org.apache.hadoop.io.Text
>       at 
> org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableStringObjectInspector.getPrimitiveWritableObject(WritableStringObjectInspector.java:41)
>       at 
> org.apache.spark.sql.hive.HiveInspectors$$anonfun$unwrapperFor$23.apply(HiveInspectors.scala:526)
>       at 
> org.apache.spark.sql.hive.HadoopTableReader$$anonfun$14$$anonfun$apply$15.apply(TableReader.scala:419)
>       at 
> org.apache.spark.sql.hive.HadoopTableReader$$anonfun$14$$anonfun$apply$15.apply(TableReader.scala:419)
>       at 
> org.apache.spark.sql.hive.HadoopTableReader$$anonfun$fillObject$2.apply(TableReader.scala:435)
>       at 
> org.apache.spark.sql.hive.HadoopTableReader$$anonfun$fillObject$2.apply(TableReader.scala:426)
>       at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
>       at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
>       at 
> org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:232)
>       at 
> org.apache.spark.sql.execution.SparkPlan$$anonfun$2.apply(SparkPlan.scala:225)
>       at 
> org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$24.apply(RDD.scala:804)
>       at 
> org.apache.spark.rdd.RDD$$anonfun$mapPartitionsInternal$1$$anonfun$apply$24.apply(RDD.scala:804)
>       at 
> org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
>       at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:319)
>       at org.apache.spark.rdd.RDD.iterator(RDD.scala:283)
>       at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
>       at org.apache.spark.scheduler.Task.run(Task.scala:99)
>       at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:282)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> ORC dump info.
> ==========================================================
> File Version: 0.12 with HIVE_8732
> 16/11/02 16:39:21 INFO orc.ReaderImpl: Reading ORC rows from 
> hdfs://XXX/part-00000 with {include: null, offset: 0, length: 
> 9223372036854775807}
> 16/11/02 16:39:21 INFO orc.RecordReaderFactory: Schema is not specified on 
> read. Using file schema.
> Rows: 7
> Compression: ZLIB
> Compression size: 262144
> Type: 
> struct<a:varchar(2),b(50),c:varchar(6),d:varchar(50),e:varchar(4),f:varchar(50),g:timestamp>
> {noformat}



--
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