gpt4 book ai didi

apache-spark - 插入 map 时不支持的操作异常

转载 作者:行者123 更新时间:2023-12-04 04:20:13 26 4
gpt4 key购买 nike

我正在使用 Spark 的 collectAsMap功能 [ Spark CollectAsMap获取 map 。在这张 map 中,当我做 put操作我收到以下异常:

ERROR ApplicationMaster: User class threw exception: java.lang.UnsupportedOperationException
java.lang.UnsupportedOperationException
at java.util.AbstractMap.put(AbstractMap.java:209)

从 collectAsMap 获得的 map 是否不可修改?

最佳答案

我假设您正在使用 Java。您收到此错误是因为在 java spark 中,collectAsMap返回一个围绕 Scala 映射的 java 包装器。在 Spark 2.2 中,此包装器是定义的自定义类 in this source file .如您所见,它没有定义 put 方法,因此您的错误。
一种解决方法可能是简单地将 map 复制到 java HashMap 中,如下所示

List<Tuple2<Integer, Integer>> list = new ArrayList<>();
list.add(new Tuple2<>(1,2));
list.add(new Tuple2<>(3,4));
Map<Integer, Integer> map = sc.parallelize(list)
.mapToPair( x -> x )
.collectAsMap();

Map<Integer, Integer> newMap = new HashMap<>(map);
newMap.put(7, 8);
System.out.println(newMap);
这产生了预期的 {1=2, 3=4, 7=8} .

关于apache-spark - 插入 map 时不支持的操作异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48443115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com