Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
从file-java创建一个对象_Java_Json_Hadoop_Mapreduce_Gson - Fatal编程技术网

从file-java创建一个对象

从file-java创建一个对象,java,json,hadoop,mapreduce,gson,Java,Json,Hadoop,Mapreduce,Gson,我有一个问题,我应该向mapper(hadoop的map reduce)传递一个对象,因此我尝试将该对象放入json中,如下所示: Object2ObjectOpenHashMapLevel1=。。。; String level1path=“pathFile.txt”; GsonBuilder GsonBuilder=新的GsonBuilder(); Gson-Gson=gsonBuilder.create(); 字符串JsonLevel1=gson.toJson(level1); Buffer

我有一个问题,我应该向mapper(hadoop的map reduce)传递一个对象,因此我尝试将该对象放入json中,如下所示:

Object2ObjectOpenHashMapLevel1=。。。;
String level1path=“pathFile.txt”;
GsonBuilder GsonBuilder=新的GsonBuilder();
Gson-Gson=gsonBuilder.create();
字符串JsonLevel1=gson.toJson(level1);
BufferedWriter writerContainTuples=新的BufferedWriter(新的FileWriter(level1path));
writerContainTuples.write(JSONLevel 1);
writerContainTuples.close();
在mapper中,我通常以这种方式从文件中获取对象:

public void映射(对象ke、文本val、上下文上下文)抛出IOException、InterruptedException{
level1=new Gson().fromJson(val.toString(),new TypeToken(){}.getType());
...       
}
}
但当我运行程序时,它会给我一个错误:

java.lang.Exception: org.apache.hadoop.shaded.com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 3

因此,如果java以这种方式给我这个错误,我不知道应该如何传递我的对象。我尝试过序列化,但在映射程序阶段,它给出了几乎相同的错误。

看起来从JSON传递给
的值不是JSON。打印
val.toString()
您将know@SunilDabburi这是val.toString(){“org.apache.lucene.util”的系统。OpenBitSet@cf13db96“:{“rhsCandidates”:{“bits”:[62],“wlen”:1},“valid”:true,“partition”:{“error”:11175.0,“elementCount”:150,“strippedPartition”:[something],“maxCardinality”:149.0}}有趣。能否确认JSON开头是否有“
”?您共享的文件看起来是有效的,最后是
]
,除非您没有共享完整的输出,否则不应该是有效的。MapReduce默认将文件的每一行分开。。。为什么不使用内置JSON解析器的Spark呢?