gpt4 book ai didi

java - 在我的 java 类中使用 scala.collection.immutable.Map

转载 作者:行者123 更新时间:2023-12-01 20:00:30 44 4
gpt4 key购买 nike

我的 java 代码中出现以下异常。

 java.lang.ClassCastException: scala.collection.immutable.Map$Map1 cannot be cast to java.util.HashMap
at au.com.vroc.udf.medianUDF.update(medianUDF.java:79)

当我将缓冲区转换为 java.utill 的 HashMap 时,我的 Spark 应用程序出现错误。这是我的代码:

    public void update(MutableAggregationBuffer buffer, Row input) {
if (!input.isNullAt(0)) {

HashMap currentBuffer=(HashMap) buffer.get(0);//getting exception here
//HashMap currentBuffer=new HashMap();
currentBuffer.put(input.getLong(0), input.getDouble(0));

//currentBuffer.add(currentMap);

buffer.update(0, currentBuffer);

}
}

我想我必须在我的java类中使用“scala.collection.immutable.Map$Map1”而不是java hashmap。我可以使用“JavaConversions”命名空间中的任何工具吗?

Anyhep 将不胜感激!

最佳答案

最简单的方法可能是使用 Scala Converters .

它应该看起来像这样(未经测试,但类型检查):

import scala.collections.JavaConverters

java.util.Map currentBuffer = JavaConverters.mapAsJavaMapConverter(buffer.get(0)).asJava();

请注意,它返回类型参数化映射(即 java.util.Map<K, V> ),而不是非参数化 java.util.HashMap在您的示例中 - 您可能希望更改代码的其余部分以在参数化映射上工作以获得更好的类型安全性。

关于java - 在我的 java 类中使用 scala.collection.immutable.Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48072538/

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