Я получаю задание не сериализуемую ошибку в Spark. Я искал и пытался использовать статическую функцию, как это было предложено в некоторых сообщениях, но она по-прежнему дает ту же ошибку.Задача не Serializable - 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();
}
}
Как решить эту ошибку? Спасибо заранее.
Отделив рейтинг и процедуру на два класса! Благодаря :) – Fleur