SparkRDD+SparkSession进行数据清洗与数据分析并迁移至数据库中

5 篇文章 0 订阅
4 篇文章 0 订阅

SparkSQL+SparkRDD对中国保险汽车安全指数数据测试进行清洗与分析

荣幸终于转入大数据工程师,根据最近正在做的项目,为大家抽取了部分为大家提供参考。寒江孤影,江湖故人啊

Spark SQL是构建在Spark RDD之上的一款ETL(Extract Transformation Load)工具,这类似于构建在MapReduce之上 的1.x版本的Hive。同Spark RDD的不同之处在于Spark SQL的API可以给Spark计算引擎提供更多的信息(计算数据结 构、转换算子),Spark计算引擎可以根据Spark SQL提供的信息优化底层计算任务。目前为止,Spark SQL提供了两
种风格的交互式API:Dataset API/SQL脚本。
数据源: 中国保险汽车安全指数数据
开发环境: IDEA ,maven,scala
数据样本:
在这里插入图片描述
数据源分析:
1.汽车价格存在多余信息,需对关键信息进行提取
2.危险系数碰撞得分中出现出现数据为P、M等需要进行ETL处理
开发需求分析:
1.使用SparkSQL对数据源实现ETL操作,技术应用:SparkRDD、SparkSQL、UDF自定义函数
程序开发:

import java.util.Properties

import org.apache.spark.sql.SparkSession

object car_info {
  def main(args: Array[String]): Unit = {
    val spark =  SparkSession.builder().appName("car_info_analyse").master("local").getOrCreate()
    spark.sparkContext.setLogLevel("FATAL")
    //创建RDD
    val carPairRDD = spark.read.option("header","true").csv("/sparkInfo/car_info.csv")
    //    carPairRDD.toDF().show(10)
    carPairRDD.toDF().createOrReplaceTempView("cars")
    //缺失值剔除
    //自定义函数处理价格
    spark.udf.register("replice_info",(like:String)=>like.replace("该车新车指导价为","").replace("。",""))
    //自定义UDF数据清洗操作
    spark.udf.register("info_replace",(like:String)=>like.replace("P","较差").replace("M","一般").replace("A","良好").replace("G","优秀"))
    val result =spark.sql("select order,brand,factory,car_type,cat_rank,replice_info(price) as price,info_replace(danger_score) as danger_score,info_replace(people_in_safe_score) as people_in_safe_score,info_replace(people_out_safe_score) as people_out_safe_score,info_replace(assist_safe_score) as assist_safe_score from cars where danger_score = '--' or people_in_safe_score ='--' or people_out_safe_score='--' or assist_safe_score='--'")
    val prop =new Properties()
    prop.setProperty("user","root")
    prop.setProperty("password","Password123$")
    result.write.jdbc("jdbc:mysql://127.0.0.1:3306/car","car_info",prop)
    result.show()
    println(result.count())
    spark.stop()
  }
}

提交到集群或IDEA进行本地测试:
在这里插入图片描述
在mysql中查看持久化数据:
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值