1.get_json_object函数
2.json_tuple函数
3.使用JsonSerde(需导入jar包)
ps:
以上三种方法参见此博客https://www.cnblogs.com/qiaoyihang/p/8729368.html
4.书写MR代码,在MR中对json数据进行处理,再将MR处理/清洗后的数据导入到hive中。
处理方法可参考如下代码:
String line = value.toString();
String[] fields = line.split("\001");
JSONObject json = JSONObject.parseObject(fields[16]);
JSONObject json1 = JSONObject.parseObject(fields[17]);
for (String string : json.keySet()){
JSONObject js1 = JSONObject.parseObject(json.getString(string));
map.put(string,js1.getString("score"));
}
for (String string : json1.keySet()){
JSONObject js2 = JSONObject.parseObject(json1.getString(string));
map.put(string,js2.getString("score"));
}
for (String as : map.keySet()){
k.setQuestion_id(as);
k.setQuestion_score(map.get(as));
context.write(k,NullWritable.get());
5.自定义UDF(代码与方法4类似)