栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Spark综合学习笔记(二十三)SparkSQL实战5-WordCount

Spark综合学习笔记(二十三)SparkSQL实战5-WordCount

学习致谢

https://www.bilibili.com/video/BV1Xz4y1m7cv?p=60

需求

使用SparkSQL的SQL和DSL两种方式完成wordCount

代码实现
package sql


import org.apache.spark.sql.{Dataframe, Dataset, SparkSession}


object Demo05_WordCount{
  def main(args: Array[String]): Unit = {
    //TODO 0.准备环境
    val spark = SparkSession.builder().appName("sparksql").master("local[*]").getOrCreate()
    val sc = spark.sparkContext
    sc.setLogLevel("WARN")
    import spark.implicits._
    //TODO 1.加载数据
    val df: Dataframe = spark.read.text("data/person.txt")
    val ds: Dataset[String] = spark.read.textFile("data/person.txt")
    df.printSchema()
    df.show()
    ds.printSchema()
    ds.show()
    //TODO 2.处理数据
    import spark.implicits._
//      df.flatMap(_.split(" "))//注意:df没有泛型,不能直接使用split
      val words: Dataset[String] = ds.flatMap(_.split(" "))
    words.printSchema()
    words.show()
    //WordCount
    //TODO =====SQL====
    words.createOrReplaceGlobalTempView("t_words")
    val sql:String=
      """
        |select value,count(*) as counts
        |from t_words
        |group by value
        |order by counts desc
      """.stripMargin
    spark.sql(sql).show
    //TODO =====DSL====
    words.groupBy('value)
        .count()
        .orderBy('count.desc)
        .show()
    //TODO 3.输出数据

    //TODO 4.关闭资源
      spark.close()
  }
    case class Person(id:Int,name:String,age:Int)
}

演示

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/612843.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号