三年前问了同样的问题。但似乎答案并非解决我的问题。根据答案,我在ubuntu中添加了“json-simple-1.1.1”,在lib“/usr/java/jdk1.6.0_26/lib”中。但我的hadoop MR工作失败了。我正在使用hadoop 0.20.2-cdh3u5。我做错了什么?任何帮助将不胜感激。 我在java中的mapper方法。
我的输入.text是一个班轮。 {“name”:“aaa”,“title:”bbb“}。我试过.json也没用!
我将jar文件从eclipse导出到ubuntu hadoop并运行“hadoop jar JSONReadFromFileCheck.jar JSONReadFromFileCheck / inputpath / outputpath”。
我还将json-simple-1.1.1.jar放在hadoop中,如下所示。请参阅。
jfyi,我在java中运行了一个示例代码,如下所示,它没有问题。
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class jsoncheck {public static void main(String[] args) throws ParseException {
String s = "{\"name\":\"aaa\",\"title\":\"bbb\"}";
JSONObject json = (JSONObject) new JSONParser().parse(s);
String vout = (String) json.get("title");System.out.println(vout);}}
我看到String不接受String内的双引号,而jsonparser不允许删除双引号:-)。我想知道映射器何时以文本形式输入,以它接收的格式!