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

Rajesh Balamohan commented on SPARK-14752:
------------------------------------------

Changing generatedOrdering in LazilyGeneratedOrdering to 
{noformat}
private[this] lazy val generatedOrdering = GenerateOrdering.generate(ordering)
{noformat} 
solves the issue and the query runs fine. 

> LazilyGenerateOrdering throws NullPointerException with TakeOrderedAndProject
> -----------------------------------------------------------------------------
>
>                 Key: SPARK-14752
>                 URL: https://issues.apache.org/jira/browse/SPARK-14752
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>            Reporter: Rajesh Balamohan
>
> codebase: spark master
> DataSet: TPC-DS
> Client: $SPARK_HOME/bin/beeline
> Example query to reproduce the issue:  
> select i_item_id from item order by i_item_id limit 10;
> Explain plan output
> {noformat}
> explain select i_item_id from item order by i_item_id limit 10;
> +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
> |                                                                             
>                                                             plan              
>                                                                               
>                                              |
> +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
> | == Physical Plan ==
> TakeOrderedAndProject(limit=10, orderBy=[i_item_id#1229 ASC], 
> output=[i_item_id#1229])
> +- WholeStageCodegen
>    :  +- Project [i_item_id#1229]
>    :     +- Scan HadoopFiles[i_item_id#1229] Format: ORC, PushedFilters: [], 
> ReadSchema: struct<i_item_id:string>  |
> +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+
> {noformat}
> Exception:
> {noformat}
> TaskResultGetter: Exception while getting task result
> com.esotericsoftware.kryo.KryoException: java.lang.NullPointerException
> Serialization trace:
> underlying (org.apache.spark.util.BoundedPriorityQueue)
>       at 
> com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:144)
>       at 
> com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:551)
>       at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:790)
>       at com.twitter.chill.SomeSerializer.read(SomeSerializer.scala:25)
>       at com.twitter.chill.SomeSerializer.read(SomeSerializer.scala:19)
>       at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:790)
>       at 
> org.apache.spark.serializer.KryoSerializerInstance.deserialize(KryoSerializer.scala:312)
>       at 
> org.apache.spark.scheduler.DirectTaskResult.value(TaskResult.scala:87)
>       at 
> org.apache.spark.scheduler.TaskResultGetter$$anon$2$$anonfun$run$1.apply$mcV$sp(TaskResultGetter.scala:66)
>       at 
> org.apache.spark.scheduler.TaskResultGetter$$anon$2$$anonfun$run$1.apply(TaskResultGetter.scala:57)
>       at 
> org.apache.spark.scheduler.TaskResultGetter$$anon$2$$anonfun$run$1.apply(TaskResultGetter.scala:57)
>       at org.apache.spark.util.Utils$.logUncaughtExceptions(Utils.scala:1791)
>       at 
> org.apache.spark.scheduler.TaskResultGetter$$anon$2.run(TaskResultGetter.scala:56)
>       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)
> Caused by: java.lang.NullPointerException
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.LazilyGeneratedOrdering.compare(GenerateOrdering.scala:157)
>       at 
> org.apache.spark.sql.catalyst.expressions.codegen.LazilyGeneratedOrdering.compare(GenerateOrdering.scala:148)
>       at scala.math.Ordering$$anon$4.compare(Ordering.scala:111)
>       at java.util.PriorityQueue.siftUpUsingComparator(PriorityQueue.java:669)
>       at java.util.PriorityQueue.siftUp(PriorityQueue.java:645)
>       at java.util.PriorityQueue.offer(PriorityQueue.java:344)
>       at java.util.PriorityQueue.add(PriorityQueue.java:321)
>       at 
> com.twitter.chill.java.PriorityQueueSerializer.read(PriorityQueueSerializer.java:78)
>       at 
> com.twitter.chill.java.PriorityQueueSerializer.read(PriorityQueueSerializer.java:31)
>       at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:708)
>       at 
> com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:125)
> {noformat}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to