要在spark中序列化的类

时间:2017-07-27 14:24:31

标签: java apache-spark serialization spark-streaming

我对在Spark应用程序中使用Serializable的Java类感到困惑。

截至目前,我的申请无异常。我只创建了一个Serializable类,这个类有Spark Streaming代码,转换  (如flatMap),以及forEachRDD等行为。

但是有些类我在这个类中实例化并调用它们的方法,而这些类是不可序列化的。我在一个驱动程序和一个工作节点上运行。

有人可以对此有所了解吗?感谢。

对于下面的代码,SparKInitClass是spark的起点,它调用Main类的opera()方法来做一些工作。

主类使用两个类(OneClass和TwoClass)来完成工作 现在哪些都需要被剔除? (Main,OneClass,TwoClass)?

class SparKInitClass{
SparkSession ss = ...create SparkSession;
new Main().operate();
}

class Main {

public void operate(){
  JavaInputDStream<B> messages = KafkaUtils.createDirectStream(
                jssc,
                LocationStrategies.PreferConsistent(),
                ConsumerStrategies.<A, B>Subscribe(topicsSet, kafkaParams));

  OneClass oc = new OneClass();

  messages.forEachRDD(record -> {

    TwoClass tc= new TwoClass();
    tc.compute();

    oc.add();
  });
}  //operate ends here

} //Main class ends here

0 个答案:

没有答案