小编van*_*ton的帖子

在Spark中排序时出现NotSerializableException

我正在尝试编写一个简单的流处理Spark作业,它将获取每个属于用户的消息列表(JSON格式),计算每个用户的消息并打印前十个用户.

但是,当我定义Comparator>对减少的计数进行排序时,整个过程会因抛出java.io.NotSerializableException而失败.

我对Spark的maven依赖:

<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.9.3</artifactId>
<version>0.8.0-incubating</version>
Run Code Online (Sandbox Code Playgroud)

我正在使用的Java代码:

public static void main(String[] args) {

    JavaSparkContext sc = new JavaSparkContext("local", "spark");

    JavaRDD<String> lines = sc.textFile("stream.sample.txt").cache();

    JavaPairRDD<String, Long> words = lines
        .map(new Function<String, JsonElement>() {
            // parse line into JSON
            @Override
            public JsonElement call(String t) throws Exception {
                return (new JsonParser()).parse(t);
            }

        }).map(new Function<JsonElement, String>() {
            // read User ID from JSON
            @Override
            public String call(JsonElement json) throws Exception {
                return json.getAsJsonObject().get("userId").toString();
            }

        }).map(new PairFunction<String, String, Long>() {
            // count each …
Run Code Online (Sandbox Code Playgroud)

java sorting notserializableexception apache-spark

7
推荐指数
1
解决办法
1941
查看次数