タスクがSparkでシリアル化できないというエラーが表示されます。私は検索し、いくつかの投稿で示唆されているように静的関数を使用しようとしましたが、それでも同じエラーが発生します。タスクがシリアル化可能ではない - Spark Java
コードは以下の通りです:
public class Rating implements Serializable {
private SparkSession spark;
private SparkConf sparkConf;
private JavaSparkContext jsc;
private static Function<String, Rating> mapFunc;
public Rating() {
mapFunc = new Function<String, Rating>() {
public Rating call(String str) {
return Rating.parseRating(str);
}
};
}
public void runProcedure() {
sparkConf = new SparkConf().setAppName("Filter Example").setMaster("local");
jsc = new JavaSparkContext(sparkConf);
SparkSession spark = SparkSession.builder().master("local").appName("Word Count")
.config("spark.some.config.option", "some-value").getOrCreate();
JavaRDD<Rating> ratingsRDD = spark.read().textFile("sample_movielens_ratings.txt")
.javaRDD()
.map(mapFunc);
}
public static void main(String[] args) {
Rating newRating = new Rating();
newRating.runProcedure();
}
}
がどのように私はこのエラーを解決するのですか? ありがとうございます。
評価と手順を2つのクラスに分けました。ありがとう:) – Fleur