读取json格式数据的小工具_SparkSQL读取JSON的数据

《大数据和人工智能交流》头条号向广大初学者新增C 、Java 、Python 、Scala、javascript 等目前流行的计算机、大数据编程语言,希望大家以后关注本头条号更多的内容。

SparkSQL读取JSON数据的案例场景描述:

某政务部分的征信系统记录者乘地铁的违规用户及其罚款情况,数据以JSON格式存储在HDFS,文件名为users_credit.json,样本数据及其格式如下:

{"user_001":1,"fine_amount":100}

{"user_001":2,"fine_amount":200}

{"user_001":3,"fine_amount":300}

{"user_001":4,"fine_amount":400}

{"user_001":5,"fine_amount":500}

说明:

"user_001":1 意思是用户user_001第一次违规

"fine_amount":100 意思是user_001用户被罚款100元

请使用SparkSQL操作JSON数据文件,并查询用户“user_001”第3次的违规情况

一、users_credit.json文件内容

{"user_001":1,"fine_amount":100}

{"user_001":2,"fine_amount":200}

{"user_001":3,"fine_amount":300}

{"user_001":4,"fine_amount":400}

{"user_001":5,"fine_amount":500}

二、实现过程

import org.apache.spark.sql.SparkSession

import org.apache.spark.sql.Row

import org.apache.spark.sql.types.StructField

import org.apache.spark.sql.types.IntegerType

import org.apache.spark.sql.types.StructType

import org.apache.spark.sql.types.StringType

object Spark_JSON {

def main(args: Array[String]): Unit = {

//创建sparkSession配置

val ss = SparkSession

.builder()

.appName("Spark SQL basic example")

.master("local")

.getOrCreate()

//读取的数据

val df = ss.read

.format("json")

.option("inferSchema", true)//自动推断列的数据类型

.load("./users_credit.json").toDF("fine_amount", "user_001")

//输出df中的数据

df.show

//输出df的schema结构

df.printSchema

df.createOrReplaceTempView("users_credit")

//查询出用户第三次违规情况,并输出

ss.sql("select * from users_credit where user_001=3 ").collect.foreach(println)

//查询出用户被罚款大于300的情况,并输出

ss.sql("select * from users_credit where fine_amount>300 ").collect.foreach(println)

ss.stop()

}

}

尊敬的读者且慢:如果您感觉好麻烦关注、收藏、点赞,谢谢!

198b8ee1a06da30fc37a7fdf014d2c10.png

《大数据和人工智能交流》的宗旨

1、将大数据和人工智能的专业数学:概率数理统计、线性代数、决策论、优化论、博弈论等数学模型变得通俗易懂。

2、将大数据和人工智能的专业涉及到的数据结构和算法:分类、聚类 、回归算法、概率等算法变得通俗易懂。

3、最新的高科技动态:数据采集方面的智能传感器技术;医疗大数据智能决策分析;物联网智慧城市等等。

根据初学者需要会有C语言、Java语言、Python语言、Scala函数式等目前主流计算机语言。

根据读者的需要有和人工智能相关的计算机科学与技术、电子技术、芯片技术等基础学科通俗易懂的文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值