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