spark高级操作之json文件的分析处理

步骤一,上传一篇json文件到hdfs,文件内容可以用百度搜素:json文件在线解析 如下:
在这里插入图片描述

hdfs dfs -put /opt/kb09file/op.log /kb09file

步骤二:,分析json文件,按照“|”切割,分成两部分
在这里插入图片描述
步骤三:对jsonStrRDD的第二部分进行截取(substring)操作

val jsonRDD=jsonStrRDD.map(x=>{var jsonStr=x._2;jsonStr=
jsonStr.substring(0,jsonStr.length-1);jsonStr+",\"id\":\""+x._1+"\"}"})

在这里插入图片描述
步骤四:将RDD转换为dataframe,结构化数据处理
在这里插入图片描述
步骤五:导入jar包

import org.apache.spark.sql.types._
import org.apache.spark.sql.functions._

步骤六:

//将json字符串{“cm”:“a1”,“ap”:“b1”,“et”:“c1”,“id”:“d1”}结构化
{
“cm”:Object{…},
“ap”:“app”,
“et”:Array[5],
“id”:“1593136280858”
},把它结构化为如下格式的表
// 表头 cm ap et id
// 列 a1 b1 c1 d1

//代码:
val jsonDF2=jsonDF.select( 
get_json_object($"value","$.cm").alias("cm") 
,get_json_object($"value","$.ap").alias("ap")
,get_json_object($"value","$.et").alias("et") 
,get_json_object($"value","$.id").alias("id")
)

在这里插入图片描述
步骤七://将cm里的字段结构化

val jsonDF3 = jsonDF2.select($"id",$"ap",get_json_object($"cm","$.ln").alias(
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值