Hi all,
The driver hangs at DataFrame.rdd in Spark 2.1.0 when the DataFrame(SQL) is complex, Following thread dump of my driver: org.apache.spark.sql.catalyst.expressions.AttributeReference.equals(namedExpressions.scala:230) org.apache.spark.sql.catalyst.expressions.IsNotNull.equals(nullExpressions.scala:312) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) org.apache.spark.sql.catalyst.expressions.Or.equals(predicates.scala:315) scala.collection.mutable.FlatHashTable$class.addEntry(FlatHashTable.scala:151) scala.collection.mutable.HashSet.addEntry(HashSet.scala:40) scala.collection.mutable.FlatHashTable$class.addElem(FlatHashTable.scala:139) scala.collection.mutable.HashSet.addElem(HashSet.scala:40) scala.collection.mutable.HashSet.$plus$eq(HashSet.scala:59) scala.collection.mutable.HashSet.$plus$eq(HashSet.scala:40) scala.collection.generic.Growable$$anonfun$$plus$plus$eq$1.apply(Growable.scala:59) scala.collection.generic.Growable$$anonfun$$plus$plus$eq$1.apply(Growable.scala:59) scala.collection.mutable.HashSet.foreach(HashSet.scala:78) scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:59) scala.collection.mutable.AbstractSet.$plus$plus$eq(Set.scala:46) scala.collection.mutable.HashSet.clone(HashSet.scala:83) scala.collection.mutable.HashSet.clone(HashSet.scala:40) org.apache.spark.sql.catalyst.expressions.ExpressionSet.$plus(ExpressionSet.scala:65) org.apache.spark.sql.catalyst.expressions.ExpressionSet.$plus(ExpressionSet.scala:50) scala.collection.SetLike$$anonfun$$plus$plus$1.apply(SetLike.scala:141) scala.collection.SetLike$$anonfun$$plus$plus$1.apply(SetLike.scala:141) scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:157) scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:157) scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:316) scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:972) scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:972) scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:972) scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:157) scala.collection.AbstractTraversable.foldLeft(Traversable.scala:104) scala.collection.TraversableOnce$class.$div$colon(TraversableOnce.scala:151) scala.collection.AbstractTraversable.$div$colon(Traversable.scala:104) scala.collection.SetLike$class.$plus$plus(SetLike.scala:141) org.apache.spark.sql.catalyst.expressions.ExpressionSet.$plus$plus(ExpressionSet.scala:50) org.apache.spark.sql.catalyst.plans.logical.UnaryNode$$anonfun$getAliasedConstraints$1.apply(LogicalPlan.scala:300) org.apache.spark.sql.catalyst.plans.logical.UnaryNode$$anonfun$getAliasedConstraints$1.apply(LogicalPlan.scala:297) scala.collection.immutable.List.foreach(List.scala:381) org.apache.spark.sql.catalyst.plans.logical.UnaryNode.getAliasedConstraints(LogicalPlan.scala:297) org.apache.spark.sql.catalyst.plans.logical.Project.validConstraints(basicLogicalOperators.scala:58) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints$lzycompute(QueryPlan.scala:187) => holding Monitor(org.apache.spark.sql.catalyst.plans.logical.Join@1365611745}) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints(QueryPlan.scala:187) org.apache.spark.sql.catalyst.plans.logical.Project.validConstraints(basicLogicalOperators.scala:58) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints$lzycompute(QueryPlan.scala:187) => holding Monitor(org.apache.spark.sql.catalyst.plans.logical.Join@1365611745}) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints(QueryPlan.scala:187) org.apache.spark.sql.catalyst.plans.logical.Project.validConstraints(basicLogicalOperators.scala:58) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints$lzycompute(QueryPlan.scala:187) => holding Monitor(org.apache.spark.sql.catalyst.plans.logical.Join@1365611745}) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints(QueryPlan.scala:187) org.apache.spark.sql.catalyst.plans.logical.Project.validConstraints(basicLogicalOperators.scala:58) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints$lzycompute(QueryPlan.scala:187) => holding Monitor(org.apache.spark.sql.catalyst.plans.logical.Join@1365611745}) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints(QueryPlan.scala:187) org.apache.spark.sql.catalyst.plans.logical.Project.validConstraints(basicLogicalOperators.scala:58) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints$lzycompute(QueryPlan.scala:187) => holding Monitor(org.apache.spark.sql.catalyst.plans.logical.Join@1365611745}) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints(QueryPlan.scala:187) org.apache.spark.sql.catalyst.plans.logical.Join.validConstraints(basicLogicalOperators.scala:302) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints$lzycompute(QueryPlan.scala:187) => holding Monitor(org.apache.spark.sql.catalyst.plans.logical.Join@1365611745}) org.apache.spark.sql.catalyst.plans.QueryPlan.constraints(QueryPlan.scala:187) org.apache.spark.sql.catalyst.optimizer.InferFiltersFromConstraints$$anonfun$apply$13.applyOrElse(Optimizer.scala:618) org.apache.spark.sql.catalyst.optimizer.InferFiltersFromConstraints$$anonfun$apply$13.applyOrElse(Optimizer.scala:605) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$3.apply(TreeNode.scala:332) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$3.apply(TreeNode.scala:332) org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:70) org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:331) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformDown$1.apply(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformDown$1.apply(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$1.apply(TreeNode.scala:202) org.apache.spark.sql.catalyst.trees.TreeNode.mapProductIterator(TreeNode.scala:188) org.apache.spark.sql.catalyst.trees.TreeNode.mapChildren(TreeNode.scala:200) org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformDown$1.apply(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformDown$1.apply(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$1.apply(TreeNode.scala:202) org.apache.spark.sql.catalyst.trees.TreeNode.mapProductIterator(TreeNode.scala:188) org.apache.spark.sql.catalyst.trees.TreeNode.mapChildren(TreeNode.scala:200) org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformDown$1.apply(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformDown$1.apply(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$1.apply(TreeNode.scala:202) org.apache.spark.sql.catalyst.trees.TreeNode.mapProductIterator(TreeNode.scala:188) org.apache.spark.sql.catalyst.trees.TreeNode.mapChildren(TreeNode.scala:200) org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformDown$1.apply(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformDown$1.apply(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$1.apply(TreeNode.scala:202) org.apache.spark.sql.catalyst.trees.TreeNode.mapProductIterator(TreeNode.scala:188) org.apache.spark.sql.catalyst.trees.TreeNode.mapChildren(TreeNode.scala:200) org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:337) org.apache.spark.sql.catalyst.trees.TreeNode.transform(TreeNode.scala:321) org.apache.spark.sql.catalyst.optimizer.InferFiltersFromConstraints$.apply(Optimizer.scala:605) org.apache.spark.sql.catalyst.optimizer.InferFiltersFromConstraints$.apply(Optimizer.scala:604) org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1$$anonfun$apply$1.apply(RuleExecutor.scala:85) org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1$$anonfun$apply$1.apply(RuleExecutor.scala:82) scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:57) scala.collection.IndexedSeqOptimized$class.foldLeft(IndexedSeqOptimized.scala:66) scala.collection.mutable.WrappedArray.foldLeft(WrappedArray.scala:35) org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1.apply(RuleExecutor.scala:82) org.apache.spark.sql.catalyst.rules.RuleExecutor$$anonfun$execute$1.apply(RuleExecutor.scala:74) scala.collection.immutable.List.foreach(List.scala:381) org.apache.spark.sql.catalyst.rules.RuleExecutor.execute(RuleExecutor.scala:74) org.apache.spark.sql.execution.QueryExecution.optimizedPlan$lzycompute(QueryExecution.scala:73) => holding Monitor(org.apache.spark.sql.execution.QueryExecution@184471747}) org.apache.spark.sql.execution.QueryExecution.optimizedPlan(QueryExecution.scala:73) org.apache.spark.sql.execution.QueryExecution$$anonfun$toString$2.apply(QueryExecution.scala:230) org.apache.spark.sql.execution.QueryExecution$$anonfun$toString$2.apply(QueryExecution.scala:230) org.apache.spark.sql.execution.QueryExecution.stringOrError(QueryExecution.scala:107) org.apache.spark.sql.execution.QueryExecution.toString(QueryExecution.scala:230) org.apache.spark.sql.Dataset.rdd$lzycompute(Dataset.scala:2544) org.apache.spark.sql.Dataset.rdd(Dataset.scala:2544)... The CPU usage of the driver remains 100% like this: I didn't find this issue in Spark 1.6.2, what causes this in Spark 2.1.0? Any help is greatly appreciated! Best, Stan 25FEF70B@52873242.80CAAD58 (27K) <http://apache-spark-developers-list.1001551.n3.nabble.com/attachment/21050/0/25FEF70B%4052873242.80CAAD58> -- View this message in context: http://apache-spark-developers-list.1001551.n3.nabble.com/The-driver-hangs-at-DataFrame-rdd-in-Spark-2-1-0-tp21050.html Sent from the Apache Spark Developers List mailing list archive at Nabble.com.