Я использую spark 2.3.1, и я получаю странную ошибку, о которой я не могу найти информацию или не могу определить ее происхождение.
К сожалению, я не могу опубликовать весь код, так как он довольно много.Но я делаю длинную цепочку преобразований DataFrame и в конце преобразую в DataSet df.as[CaseClass]
Затем я пытаюсь вызвать действие для DataSet и получаю следующее:
java.lang.UnsupportedOperationException: Only code-generated evaluation is supported
Если яПримените вручную схему к DataFrame (путем преобразования в rdd и использования sqlContext.createDataFrame) перед приведением к DataSet, все в порядке, но это довольно дорогой вычислительный шаг, поэтому я хотел бы пропустить его, и сначала я хотел бы найти кореньпричина проблемы.
Кто-нибудь сталкивался с этой проблемой?Вот (вероятно) релевантная часть трассировки стека:
Only code-generated evaluation is supported
java.lang.UnsupportedOperationException: Only code-generated evaluation is supported
at org.apache.spark.sql.catalyst.expressions.objects.WrapOption.eval(objects.scala:419)
at org.apache.spark.sql.catalyst.optimizer.ConstantFolding$$anonfun$apply$1$$anonfun$applyOrElse$1.applyOrElse(expressions.scala:53)
at org.apache.spark.sql.catalyst.optimizer.ConstantFolding$$anonfun$apply$1$$anonfun$applyOrElse$1.applyOrElse(expressions.scala:46)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$2.apply(TreeNode.scala:267)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$2.apply(TreeNode.scala:267)
at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:70)
at org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:266)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformDown$1.apply(TreeNode.scala:272)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformDown$1.apply(TreeNode.scala:272)
at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$4$$anonfun$apply$11.apply(TreeNode.scala:335)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
at scala.collection.immutable.List.foreach(List.scala:392)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
at scala.collection.immutable.List.map(List.scala:296)