【发布时间】:2016-04-20 08:05:27
【问题描述】:
我有以下课程:
public final class Derived extends AbstractBase implements Serializable {
private static final long serialVersionUID = 1L;
private String fieldA
:
}
public abstract class AbstractBase {
protected List<String> sources = new ArrayList<String>();
public final String toJsonString() {
return (new Gson()).toJson(this);
}
@Override
public final String toString() {
return toJsonString();
}
:
}
然后在我的 Spark 工作中:
val myRDD: RDD[Derived] = input.map {
...
}.saveAsTextFile("myOutput")
myOutput 文件中每个Derived 对象的Json 字符串总是缺少sources 列表。但是,如果我手动移动
protected List<String> sources = new ArrayList<String>();
从AbstractBase 到Derived 类,一切正常。
有人知道为什么在 Spark - saveAsTextfile 方法中缺少继承字段吗?
谢谢!
【问题讨论】:
-
你有复制器吗?我不认为这是
saveAsTextFile的问题。您可以使用collect().foreach(println)来检查它是否输出相同的结果。
标签: java scala inheritance apache-spark derived-class