Spark 2.0介绍:Dataset介绍和使用
来源:互联网 发布:mac铃声制作 编辑:程序博客网 时间:2024/06/10 23:00
Spark 2.0介绍:Dataset介绍和使用
Spark2.0是Apache Spark的下一个主要版本。
此版本在架构抽象、API以及平台的类库方面带来了很大变化。
DataSet是从Spark1.6开始引入的一个新的抽象,当时还是处于alpha版本;然而在Spark2.0,它已经变成了稳定版了。
Dataset是特定域对象中的强类型集合,它可以使用函数或者相关操作并行地进行转换等操作。
每个Dataset都有一个称为DataFrame的非类型化视图,这个视图是行的数据集。
RDD也可以并行化的操作,DataSet和RDD主要的区别是:
DataSet是特定域的对象集合;
RDD是任何对象的集合。
1.创建SparkSession
val sparkSession = SparkSession.builder. master("local") .appName("example") .getOrCreate()
2.读取数据并将它转换成DataSet
可以使用read.text API来读取数据,正如RDD版提供的textFile,as[String]可以为dataset提供相关的模式
import sparkSession.implicits._val data = sparksession.read.text("").as[String]
上面data对象的类型是DataSet[String],我们需要引入sparkSession.implicits._
3.分割单词并且对单词进行分组
DataSet提供的API和RDD提供的非常类似,所以也可以在DataSet对象上使用map.groupByKey相关的API
val words = data.flatMap(value => value.split("\\s+"))val groupedWords = words.groupByKey(_.toLowerCase)
DataSet是工作在行级别的抽象,每个值将被看做带有多列的行数据,而且每个值都可以看做是group的key
4.计数
一旦我们有了分组好的数据,我们可以使用count方法对每个单词进行计数,正如在RDD上使用reduceByKey
val counts = groupedWords.count()
5.打印结果
counts.show()
SparkDemo
package com.lmbang.sparkimport org.apache.spark.sql.{Row, SparkSession}import org.apache.log4j._object SparkDemo { def main(args: Array[String]) { Logger.getLogger("org").setLevel(Level.ERROR) // 1.创建SparkSession val sparkSession = SparkSession.builder().master("local").appName("Demo").getOrCreate() // 2.读取数据并将它转换成DataSet import sparkSession.implicits._ val data = sparkSession.read.text("F:\\IdeaProjects\\Ngram\\resource\\aa.txt").as[String]// val data = sparkSession.read.text("F:\\IdeaProjects\\Ngram\\resource\\u.user").as[String].map { line => Row(line.split("\\|")(0).toString, line.split("\\|")(1).toString, line.split("\\|")(2).toString, line.split("\\|")(3).toString, line.split("\\|")(4).toString) } // data.toDF() // 3.分割单词并且对单词进行分组 val words = data.flatMap(value => value.split(" ")) val groupedWords = words.groupByKey(_.toLowerCase) // 4.计数 val counts = groupedWords.count() // 5.打印结果 counts.show() }}
0 0
- Spark 2.0介绍:Dataset介绍和使用
- Spark 2.0介绍:Dataset介绍和使用
- Spark Dataset介绍和使用
- Spark DataSet介绍
- Spark SQL DataFrame/Dataset介绍
- Spark 2.0介绍:从RDD API迁移到DataSet API
- Spark 2.0介绍:从RDD API迁移到DataSet API
- Spark 2.0介绍:从RDD API迁移到DataSet API
- Spark 2.0介绍:SparkSession创建和使用相关API
- Spark 2.0介绍:SparkSession创建和使用相关API
- DataSet介绍
- DataSet介绍
- spark使用介绍
- spark core组件:RDD、DataFrame和DataSet介绍、场景与比较
- Spark 2.0介绍:Spark SQL中的Time Window使用
- Spark rdd 介绍,和案例介绍
- dataset的概念和内容介绍
- dataset的概念和内容介绍
- C++作业3
- npm必杀技
- SearchView+RecyclerView+GreenDao的搜索功能实现(2)
- VS使用技巧——如何自动在新建项目中添加语句
- Linux(centos6.5)下安装OpenSSL 安装图文详解
- Spark 2.0介绍:Dataset介绍和使用
- 倒计时案例 实现
- nginx负载均衡原理
- 递归求解八皇后问题
- 机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
- C# 使用IComparer自定义List类的排序方案
- Linux之自动安装 RED HAT ENTERPRISE LINUX 与控制对文件的访问
- 如何理解“线性代数”?
- golang中tcp socket粘包问题和处理