Spark在类路径上找不到case类

时间:2018-02-01 15:06:11

标签: scala apache-spark apache-spark-dataset generated-code

我遇到Spark无法为Caused by: org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 52, Column 43: Identifier expected instead of '.'生成代码的问题。这是火花错误

/* 052 */ private com.avro.message.video.public.MetricObservation MapObjects_loopValue34;

以下是生成代码中引用的行

com.avro.message.video.public.MetricObservation

应该注意的是,case class是较大层次结构的一部分中的嵌套RDD。它也可以在代码中的其他地方使用。还应该注意,如果我使用Dataset API,此管道可以正常工作,但我想使用Dataset API,因为我想写出镶木地板中的<c_text> <b> 1 <b> ".Some text" </c_te。有没有人见过这个问题?

我使用的是Scala 2.11和Spark 2.1.0。我能够升级到Spark 2.2.1,问题仍然存在。

2 个答案:

答案 0 :(得分:1)

你认为SI-7555或类似的东西对此有何影响?我注意到过去Scala反射在静态嵌套类中生成TypeTag的问题。你是否认为这样的事情正在发生,或者这在火花中是一个催化剂问题?您可能也想要提交火花票。

答案 1 :(得分:0)

事实证明,更改影响类的包名称&#34;修复&#34; (即离开)问题。我真的不知道为什么会这样,甚至在一个小的测试案例中如何重现它。对我有用的是我刚刚创建了一个更高级别的包。具体而言com.avro.message.video.public - &gt; com.avro.message.publicVideo