DataFrame转化为json格式的两种方式

1.隐式转化时指定匹配的字段

//由rdd格式化类型为String类型
//在toDf的过程中匹配字段
//coalesce指定了输出文件个数
//mode(SaveMode.Overwrite)指定文件的存储类型为覆盖
rddResult.map(tp=>(tp._1,tp._2(0),tp._2(1),tp._2(2),tp._2(3),tp._2(4),tp._2(5),tp._2(6),tp._2(7),tp._2(8),tp._2(9)))
    .toDF("AttachRWBureau","allData","atpError","main","wifi","balise","TCR","speed","DMI","TIU","JRU")
    .coalesce(1).write.mode(SaveMode.Overwrite).json(args(1))

2.使用gson,配合样例类来使用

json方式2 gson
    rddResult.map(tp => {
      //创建一个Gson对象
      val gson = new Gson()
      //调用gson对象中的方法
      gson.toJson(AttachRWBureauKPI(tp._1, tp._2(0), tp._2(1), tp._2(2), tp._2(3), tp._2(4), tp._2(5), tp._2(6), tp._2(7), tp._2(8), tp._2(9)))
    }).saveAsTextFile(args(1))
   
    //使用了样例类
case class AttachRWBureauKPI(
                              AttachRWBureau: String,
                              allData: Int,
                              atpError: Int,
                              main: Int,
                              wifi: Int,
                              balise: Int,
                              TCR: Int,
                              speed: Int,
                              DMI: Int,
                              TIU: Int,
                              JRU: Int
                            )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值