DependencyLink是一个类,字段包括parent、child、callCount、errorCount、appName 和dev 。其中,前四个字段是zipkin-dependencies源码自带的,后面两个字段是我新增的。我获取到了JavaRDD数据后,将里面的字段全部打印输出,每个字段都有数据,但在JavaRDD的基础上再使用collect()方法后,自己添加的字段值就没有了
JavaPairRDD<Tuple2<String,String>, DependencyLink> objects3 = new SQLContext(sc).read()
.format("org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider")
.options(options)
.load()
.toJavaRDD()
.groupBy(rowTraceId)
.flatMapValues(new RowsToDependencyLinks(logInitializer, hasTraceIdHigh))
.values()
.mapToPair(l -> Tuple2.apply(Tuple2.apply(l.parent(), l.child()), l));
JavaRDD<DependencyLink> objects5 = objects3.values();
class ForeachFunTest5 implements VoidFunction<DependencyLink>, Serializable {
private static final long serialVersionUID = -4892194648703458594L;
@Override
public void call(DependencyLink t) throws Exception {
System.out.println("MySQLDependenciesJob------ values after reduceByKey parent = " + t.parent());
System.out.println("MySQLDependenciesJob------ values after reduceByKey child = " + t.child());
System.out.println("MySQLDependenciesJob------ values after reduceByKey appName = " + t.appName());
System.out.println("MySQLDependenciesJob------ values after reduceByKey dev = " + t.dev());
System.out.println("MySQLDependenciesJob------ values after reduceByKey callCount = " + t.callCount());
System.out.println("MySQLDependenciesJob------ values after reduceByKey errorCount = " + t.errorCount());
}
}
objects5.foreach(new ForeachFunTest5());
List<DependencyLink> objects6 = objects5.collect();
for(DependencyLink dependencyLink: objects6) {
System.out.println("MySQLDependenciesJob------ objects6 parent = " + dependencyLink.parent());
System.out.println("MySQLDependenciesJob------ objects6 child = " + dependencyLink.child());
System.out.println("MySQLDependenciesJob------ objects6 appName = " + dependencyLink.appName());
System.out.println("MySQLDependenciesJob------ objects6 dev = " + dependencyLink.dev());
System.out.println("MySQLDependenciesJob------ objects6 callCount = " + dependencyLink.callCount());
System.out.println("MySQLDependenciesJob------ objects6 errorCount = " + dependencyLink.errorCount());
}