当我尝试对 DataFrame 进行排序时:
val df1 = df.toDF().sort(desc("sourceId"))
我得到:
17/11/07 15:15:37 错误执行程序:114.0 阶段任务 3.0 中的异常(TID 218)com.esotericsoftware.kryo.KryoException:java.lang.IllegalArgumentException:类未注册:scala.math.Ordering$$ anon$4 注意:注册这个类使用:kryo.register(scala.math.Ordering$$anon$4.class); 序列化跟踪:在 com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:101) 在 com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java) 的 ord (org.apache.spark.util.BoundedPriorityQueue) :518) 在 com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:628) 在 com.twitter.chill.SomeSerializer.write(SomeSerializer.scala:21) 在 com.twitter.chill.SomeSerializer.write(SomeSerializer. scala:19) 在 com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:628) 在 org.apache.spark.serializer。
我也试过 order by,但都不起作用。
这里有什么问题?我必须导入订购scala.math.order
吗?
看起来你正在使用 spark.kryo.registrationRequired
spark.kryo.registrationRequired true
请将其设置为false
:
spark.kryo.registrationRequired false
或添加所需的类 spark.kryo.classesToRegister
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句