Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hadoop-ClassCastException:LongWriteable不能强制转换为Long_Java_Hadoop - Fatal编程技术网

Java Hadoop-ClassCastException:LongWriteable不能强制转换为Long

Java Hadoop-ClassCastException:LongWriteable不能强制转换为Long,java,hadoop,Java,Hadoop,我得到了以下ClassCastException,但不确定代码出了什么问题: java.lang.Exception: java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to java.lang.Long at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:492) at o

我得到了以下
ClassCastException
,但不确定代码出了什么问题:

java.lang.Exception: java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to java.lang.Long
    at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:492)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:552)
Caused by: java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to java.lang.Long
    at uk.ac.man.cs.comp38211.exercise.PositionalTFTerm.<init>(BasicInvertedIndex.java:264)
    at uk.ac.man.cs.comp38211.exercise.PositionalTFTerm.of(BasicInvertedIndex.java:301)
    at uk.ac.man.cs.comp38211.exercise.PositionalTFTerm.merge(BasicInvertedIndex.java:276)
    at java.util.stream.Collectors$1OptionalBox.accept(Collectors.java:706)
    at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:909)
    at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
    at com.google.common.collect.Streams$2.tryAdvance(Streams.java:366)
    at java.util.Spliterator.forEachRemaining(Spliterator.java:326)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at uk.ac.man.cs.comp38211.exercise.BasicInvertedIndex$MyMapper.map(BasicInvertedIndex.java:103)

我可以知道怎么修理吗?谢谢。

您正在将
LongWritable
动态对象添加到严格的
Long
列表中?但在此之前,是否将此
Long
列表初始化为
ArrayListWritable
动态列表?还是我遗漏了什么?此
positions
列表应包含什么数据类型?很抱歉,命名混乱,
positions
是类型为
list
的构造函数参数,
this.positions
是类型为
ArrayListWritable
的实例变量,我已将问题中的图片展开,使其更详细clear@Coursal在构造函数中,我正在尝试将
列表
转换为
ArrayListWritable
您是否尝试在
ArrayListWritable
类中添加一个方法来进行此转换(类似这样的转换)?我不相信这是一个常见的变量命名问题当然,我很感兴趣的是,您正在尝试这样动态地进行转换。@Coursal如果我将其直接存储为
列表
,然后只在
positiontfterm
类中的
write
readFields
方法中进行转换,那么它可以毫无问题地工作,我想这是目前最好的方法。