使用sparkSQL进行数据分析并使用echart画图

本文介绍了一次使用SparkSQL进行数据分析,并利用Echart进行数据可视化的实验过程。实验要求包括分析发布公司最多的Top 10、招聘职位最多的Top5以及工资最高的职位Top3。在数据处理中,解决了CSV文件中文乱码和SQL查询的问题。最后通过Echart在Java Web工程的JSP页面上展示了饼状图、柱状图和折线图的效果。
摘要由CSDN通过智能技术生成

使用sparkSQL进行数据分析并使用echart画图

刚学了一些大数据的基础知识,老师留了一个小实验,用sparkSql或mapreduce分析数据,然后在进行数据可视化。因为sparkSql可以使用sql语句查询,所以采取的sparksql进行数据分析。

下面就记录一些操作

实验要求:

老师给的5000条数据,格式是这样的在这里插入图片描述
- 分析发布公司最多的Top 10 公司名称及发布职位数量【饼状图展示】

- 分析招聘职位最多的Top5 职位名称及数量【柱状图展示】

- 分析工资最高的职位Top3 职位名称及工资【折线图展示】

前提条件:

在idea中配置好hadoop、scala和spark环境

配置好环境之后就可以开始写代码了

一、用sparkSQL分析数据
1、新建一个scala object
import org.apache.hadoop.io.LongWritable
import org.apache.hadoop.mapred.TextInputFormat
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.types.{DataTypes, StructField}
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.{Row, SQLContext, SparkSession}

import scala.collection.mutable.ArrayBuffer
import scala.xml.Text

object DataAnalysis {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local[*]").setAppName("dataFrameTest")
      .set("spark.port.maxRetries","1000");
    val sc = new SparkContext(conf)
    val spark = SparkSession.builder().config(conf).getOrCreate()
    import spark.implicits._
    val data = spark.read
      .format("com.databricks.spark.csv")
      .option("inferSchema", "true")
      .option("header", "true") //reading the headers
      .option("mode", "DROPMALFORMED")
      .option("nullValue", "?")
      .csv("c:\\51Job_python_5000.txt");
    data.show()
    val dataDF = data.toDF("work","company","add","salary","date")
    val dataDF2 = dataDF.filter("work != '' and company != '' and add != '' and salary != '' and date != ''")
    //dataDF.show()
    //dataDF2.show()
    val message = dataDF2.createOrReplaceTempView("message")
    //第一题答案
    val resdata = spark.sql("select count(*) num,company FROM message group by company").registerTempTable("q1temp")
    val resdata2 = s
  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值