java - FlatMapFunction 没有定义serialversionUid

标签 java apache-spark

enter image description here

@Component("loader")
    @Slf4j
    public class LoaderSpark implements Serializable , SparkJob {
            private static final int MAX_VERSIONS = 1;
            private static final long serialVersionUID = 5911491576792653184L;
           spark.sparkContext().getConf().toDebugString());
          HBaseUtil hBaseUtil = new HBaseUtil(props);

        byte[][] prefixes = new byte[][]{toBytes("document"),
                toBytes("dataSource"),
                toBytes("hold:")};

        Filter filter = new MultipleColumnPrefixFilter(prefixes);

        Scan scan = new Scan();
        scan.addFamily(toBytes("data"));        
        scan.setFilter(filter);

    @Override
    public void run(final SparkSession spark, final String... args) {

        JavaPairRDD<ImmutableBytesWritable, Result> ScanRDD
                = hBaseUtil.createScanRdd(spark, "Test", scan);

        ScanRDD.mapToPair(new FlatMapFunction<Tuple2<ImmutableBytesWritable,Result>, String, String>() {


            @Override
            public Iterator<String> call(Tuple2<ImmutableBytesWritable, Result> immutableBytesWritableResultTuple2) throws Exception {
                return null;
            }

        });

我的ScanRDD.mapToPair函数提示serialversionUid丢失并要求在ScanRDD.mapToPair(new FlatMapFunction<Tuple2<ImmutableBytesWritable,Result>, String, String>() {内添加一个

我想知道为什么需要将serialversionUid 添加到我的FlatMapFunction 中?我已经为类(class)准备了一份。

有什么帮助吗?

最佳答案

其背后的原因只是一个静态分析,验证实现 Serialized 的类的每个实例是否具有 serialVersionUID 字段。

在您的例子中,FlatMapFunction 实现了 java.io.Serialized 并且您正在创建它的匿名类。

所以只需添加serialVersionUID

ScanRDD.mapToPair(new FlatMapFunction<Tuple2<ImmutableBytesWritable,Result>, String, String>() {
//inside the anonymous class
private final serialVersionUID = 1L;

@Override
public Iterator<String> call(Tuple2<ImmutableBytesWritable, Result> immutableBytesWritableResultTuple2) throws Exception {
                return null;
}

})

参见https://spark.apache.org/docs/2.2.2/api/java/org/apache/spark/api/java/function/FlatMapFunction.html

关于java - FlatMapFunction 没有定义serialversionUid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61493596/

相关文章:

scala - Spark 随机森林二元分类器指标

java - 如何在从 Jframe 打开一段时间后关闭 JDialog

java.io.NotSerializedException Libgdx

java - 将迭代转变为递归

java - 库(jar)应该进入存储库吗?

apache-spark - 创建 StreamingContext 时出错

java - 改变 RadialGradient,渐变位置?

apache-spark - 订购 Pyspark 窗口时缺少数据

hadoop - Spark + yarn : How to retain logs of lost-executors

scala - Spark 和 Scala 中数据框的转换模式