parse.json文件

k3fezbri  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(403)

我是hadoop上json的新手,我有大量的.json类型的日志文件。我需要在mapreduce中解析这些日志。我需要一个mapreduce作业的例子,它接受.json文件的输入,解析它并将其输出到文本文件或.json文件。

[  
    {  
        "name":"John",
        "city":"Berlin",
        "cars":[  
            "audi",
            "bmw"
        ],
        "job":"Teacher"
    },
    {  
        "name":"Mark",
        "city":"Oslo",
        "cars":[  
            "VW",
            "Toyata"
        ],
        "job":"Doctor"
    }
]

例如,上面的json应该在mapreduce中进行解析,以得到key:name and 在所有附加名称的值中

cu6pst1q

cu6pst1q1#

要将任何数据读入您的程序,您需要一个inputformat的实现,无论是jsonxml还是avro读取器,该实现都应该超越下面的方法
公开摘要

RecordReader<K,V> createRecordReader(InputSplit split,
                                         TaskAttemptContext context
                                        ) throws IOException, 
                                                 InterruptedException;

如果您正在寻找一个现有的实现,只需google或查看这里的定制inputformat,以便在hadoop中读取json
有关实现的详细信息,请参阅此源代码http://grepcode.com/file/repo1.maven.org/maven2/org.kitesdk/kite-data-core/0.18.0/org/kitesdk/data/spi/filesystem/jsoninputformat.java
输出格式与此无关。您可以根据需要选择减速机的输入和输出类型。仅当您要生成json文件时,才需要jsonoutputformat(fileoutputformat的实现)

px9o7tmv

px9o7tmv2#

googlegson的jsonreader可能正是您所需要的。不完全确定您要用json数据做什么,但是您应该能够用jsonreader从文件中导入json并相应地处理它
https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/stream/jsonreader.html

相关问题