我正在尝试在Spark RDD
上开发一些奇特的转换。详细地说,在map
内部,我使用org.apache.commons.lang.SerializationUtils
来克隆复杂对象。
以下是代码:
val rdd: RDD[A] = // Getting the rdd...
rdd.map(SerializationUtils.clone(_));
类A
是一个显然实现Serializable
的Java类。
public class A implements Serializable {
// Some cool stuff
}
当Spark执行上述转换时,我们得到错误org.apache.commons.lang.SerializationException: java.lang.ClassNotFoundException: A
。此外,只有在群集上执行代码时才会遇到错误。
到底是怎么回事?!
编辑: 使用另一个tecnique来克隆对象。然后,它必须是与Spark和apache-common lib之间的集成相关的一些问题。