wps解析json数据_json和csv:数据解析的基本类型

本文介绍了如何使用WPS来解析JSON数据,通过实例展示了解析过程,对比了JSON与CSV在数据解析上的基本类型差异。
摘要由CSDN通过智能技术生成
JSON:键值对存放,键必须唯一,值可以是任意类型
{
"employees": [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName":"Carter" }
]
}

解析:

com.alibaba.fastjson.JSONObject:JSON解析器
import com.alibaba.fastjson.JSONObject;
rawjson是一行json数据
JSONObject jsonObject = JSONObject.parseObject(rawJson);

解析实例:

JSON 转换 csv
@Override
    protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
        String line = value.toString();
        boolean is_i__data = (line.contains("[") || line.contains("]") || line.equals("") || line == null);
        if (is_i__data) {
            return;
        }
        line = line.substring(0, line.length() - 1);
        if (!line.substring(line.length() - 2, line.length()).equals("}}")) {
            line = line + "}";
        }
        JSONObject json = JSONObject.parseObject(line);
        JSONObject detial = JSONObject.parseObject(json.getString("detail"));
        String name = json.getString("name");
        List<String> data = new ArrayList<String>();

        if (name==null||name.equals(""))
            return;
        if (detial.keySet().size()!=11)
            return;
        data.add(name);
        for(String k :detial.keySet()){
            String v = detial.getString(k);

            data.add(v.replaceAll("r|n",""));
        }


        line = StringUtils.join(data,"|");
        String[] list = line.split("|");
        if(list.length!=12){
            System.out.println(Arrays.toString(list));
            System.out.println(list.length);
        }

        context.write(key,new Text(line));
    }
CSV:分隔符存放,一条数据以换行符,一列数据以分隔符(不一定)

1cef84ed00d1b190e333cf8c0edc4993.png

解析:

在hive中,解析CSV数据
row format delimited
fields terminated by '|'
stored as textfile;
或者使用csv解析工具:OpenCSVSerde
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
  'escapeChar'='',
  'quoteChar'='"',
  'separatorChar'=',')
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';
在mysql中,解析CSV数据
fields terminated by ',' 
optionally enclosed by '"' 
lines terminated by 'rn';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值