Spark 2.4.0 编程指南--快速入门

简介: ## 技能标签 - Spark 2.4.0 Spark session available as 'spark' - 在Spark 2.0之后,RDD被数据集(Dataset)取代 - Spark session 读取HDFS文件做为数据集 - 数据集函数,count(),first(),...

Spark 2.4.0 编程指南--快速入门

Spark_2_4_0_001_jpeg

更多资源

视频

文档

前置条件

  • 已安装好java(选用的是java 1.8.0_191)
  • 已安装好scala(选用的是scala 2.11.121)
  • 已安装好hadoop(选用的是Hadoop 3.1.1)
  • 已安装好spark(选用的是spark 2.4.0)

技能标签

  • Spark 2.4.0 Spark session available as 'spark'
  • 在Spark 2.0之后,RDD被数据集(Dataset)取代
  • Spark session 读取HDFS文件做为数据集
  • 数据集函数,count(),first(),filter(),reduce()
  • 统计所有行单词总个数
  • 计算行中最多单词的个数
  • 计算最多单词个数的行
  • 按单词分组统计个数(WordCount)
  • 官网: http://spark.apache.org/docs/2.4.0/quick-start.html

示例

  • Spark session 读取HDFS文件做为数据集
 val dataSet = spark.read.textFile("/home/liuwen/data/a.txt")
  • 数据集调用count()函数
 dataSet.count()
  • 数据集调用first()函数
 //其实调用的是head()函数
 dataSet.first()
  • 数据集调用show()函数
 dataSet.show()  //默认取前20行数据,并进行20个字符的截断
 dataSet.show(10,false)   //取前20行数据,并且不进行截断
  • 数据集调用filter()函数
 dataSet.filter(line => line.contains("spark"))
  • 统计所有行单词总个数
 import spark.implicits._
val lineWordLength = dataSet.map( line => line.split(" ").size)
val result = lineWordLength.reduce((a,b) => a + b)
  • 计算行中最多有多少个单词
import spark.implicits._
val lineWordLength = dataSet.map( line => line.split(" ").size)
val result = lineWordLength.reduce((a,b) => Math.max(a,b))
  • 计算最多单词个数的行
import spark.implicits._
val result = dataSet.reduce((a,b) => {
  if(a.split(" ").size > b.split(" ").size) a  else b
})
  • 按单词分组统计单词个数(WorldCount)
import spark.implicits._

    val distFile = spark.read.textFile("hdfs://standalone.com:9000/home/liuwen/data/word.txt")

    //方式一
    //val dataset = distFile.flatMap( line => line.split(" ")).groupByKey(x => x ).count()


    //方式二
    val dataset = distFile.flatMap( line => line.split(" ")).map(x => (x,1)).groupByKey(x => x).reduceGroups((a,b) => (a._1,a._2+b._2))

    //方式三
    //val dataset = distFile.flatMap( line => line.split(" ")).groupByKey(identity ).count()

end

相关文章
|
2月前
|
设计模式 SQL 分布式计算
Spark Day06:Spark Core之Spark 内核调度和SparkSQL快速入门
Spark Day06:Spark Core之Spark 内核调度和SparkSQL快速入门
60 0
|
2月前
|
分布式计算 并行计算 大数据
Spark学习---day02、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
Spark学习---day02、Spark核心编程 RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
118 1
|
2月前
|
SQL 分布式计算 大数据
【大数据技术Spark】DStream编程操作讲解实战(图文解释 附源码)
【大数据技术Spark】DStream编程操作讲解实战(图文解释 附源码)
78 0
|
10月前
|
SQL 分布式计算 大数据
大数据Spark SQL快速入门
大数据Spark SQL快速入门
115 0
|
2月前
|
SQL 分布式计算 API
Spark学习------SparkSQL(概述、编程、数据的加载和保存)
Spark学习------SparkSQL(概述、编程、数据的加载和保存)
100 2
|
2月前
|
存储 分布式计算 负载均衡
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
118 0
|
2月前
|
分布式计算 Java Scala
Spark学习---day03、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(二)
Spark学习---day03、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(二)
|
2月前
|
存储 分布式计算 Hadoop
Spark编程实验一:Spark和Hadoop的安装使用
Spark编程实验一:Spark和Hadoop的安装使用
49 4
|
2月前
|
分布式计算 关系型数据库 MySQL
Spark编程实验四:Spark Streaming编程
Spark编程实验四:Spark Streaming编程
61 2
|
2月前
|
SQL 分布式计算 关系型数据库
Spark编程实验三:Spark SQL编程
Spark编程实验三:Spark SQL编程
35 1