文档章节

spark2.2官方教程笔记-快速开始

skanda
 skanda
发布于 2017/08/07 08:19
字数 554
阅读 135
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

spark官方教程包括以下几个模块

  1. 快速开始
  2. spark编程指南
  3. spark内建模块:a,spark流式编程;b,sparkSql,DataSets和DataFrames;c:MLlib内建机器学习库;d:图处理
  4. spark集群部署向导;
  5. 其它文档包括配置spark系统,监控,作业调度,安全支持等

快速开始:

    spark主要使用的分布式抽象集合工具是Dataset。Dataset创建方式有从Haddop InputForamtes创建,或者从其他DataSet转换而来。

Hadoop InputFormats方式:

scala> val textFile = spark.read.textFile("README.md")
textFile: org.apache.spark.sql.Dataset[String] = [value: string]

    对于DataSet,我们可以直接获取数据,比如调用action方法,或者通过transform方法转换成一个新的数值;

action操作

scala> textFile.count() // Number of items in this Dataset
res0: Long = 126 // May be different from yours as README.md will change over time, similar to other outputs

scala> textFile.first() // First item in this Dataset
res1: String = # Apache Spark

tranform操作

scala> val linesWithSpark = textFile.filter(line => line.contains("Spark"))
linesWithSpark: org.apache.spark.sql.Dataset[String] = [value: string]

transform+action操作

scala> textFile.filter(line => line.contains("Spark")).count() // How many lines contain "Spark"?
res3: Long = 15

更多数据集操作

  Dataset action和transformations能被适用于更多更复杂的操作。比如获取一个文件中最多单词的行 所包含的单词数目

scala> textFile.map(line => line.split(" ").size).reduce((a, b) => if (a > b) a else b)
res4: Long = 15

先用一个map,把每行的单词数统计出来。再用一个reduce,把 最多单词的行 所包含的单词数目返回回去。对于reduce中的操作,我们可以使用数学库中的max函数代替

scala> import java.lang.Math
import java.lang.Math

scala> textFile.map(line => line.split(" ").size).reduce((a, b) => Math.max(a, b))
res5: Int = 15

Caching

spark支持把数据集推送得到集群范围的内存中。在数据经常需要访问的时候这个函数时很有用。

spark应用例子

/* SimpleApp.scala */
import org.apache.spark.sql.SparkSession

object SimpleApp {
  def main(args: Array[String]) {
    val logFile = "YOUR_SPARK_HOME/README.md" // Should be some file on your system
    val spark = SparkSession.builder.appName("Simple Application").getOrCreate()
    val logData = spark.read.textFile(logFile).cache()
    val numAs = logData.filter(line => line.contains("a")).count()
    val numBs = logData.filter(line => line.contains("b")).count()
    println(s"Lines with a: $numAs, Lines with b: $numBs")
    spark.stop()
  }
}

程序很简单,只是对spark的readme文件,获取包含字母a的行数和字母b的行数。

skanda
粉丝 11
博文 108
码字总数 60675
作品 0
厦门
私信 提问
加载中
请先登录后再评论。
好程序员大数据教程分享Spark快速入门(72集视频+源码+笔记)

好程序员大数据教程分享Spark快速入门(72集视频+源码+笔记) 什么是Spark? Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校...

好程序员官网
2019/11/23
10
0
Apache Kudu 1.5.0 发布,Hadoop 数据存储系统

Hadoop数据存储系统Apache Kudu 1.5.0已发布,升级说明: 从Kudu 1.5.0开始支持Spark2.2,Spark 2.2是Kudu 1.5.0的默认依赖版本。虽然Spark 2.x对Java 7是兼容的,但是结合Kudu使用Spark 2.2...

Li_Peng
2017/09/22
1K
1
带你少走弯路:强烈推荐的Pytorch快速入门资料和翻译(可下载)

上次写了TensorFlow的快速入门资料,受到很多好评,读者强烈建议我出一个pytorch的快速入门路线,经过翻译和搜索网上资源,我推荐3份入门资料,希望对大家有所帮助。 备注:TensorFlow的快速...

kbsc13
2019/10/15
0
0
spark2.2 从入门到精通全套视频教程(含网盘下载地址)

Spark2.2从入门到精通 链接:https://pan.baidu.com/s/1GnPqp4wOV916REMB_XJ5w 提取码:16zp

osc_h0wb1wlt
2019/08/18
4
0
Spark操作hive示例代码

示例代码 val sparkConf = new SparkConf().setAppName("hive example") val sc = new SparkContext(sparkConf) val hiveContext = new HiveContext(sc) val tableName="hive_test"; var spa......

守望者之父
2018/06/15
86
0

没有更多内容

加载失败,请刷新页面

加载更多

Day 4 掌握pip命令,管理好你的Python资源包

在文章底部你的每一次随手 → 分享、点赞、在看都很重要,感谢!!! 精华推荐:精选20篇满足你对前沿理论、技术和经验总结 开源优测专辑集合: 1. 前沿理论、工具和趋势总结 2. 快学Python3...

苦叶子
07/02
0
0
Motan中使用异步RPC接口

这周六参加了一个美团点评的技术沙龙,其中一位老师在介绍他们自研的 RPC 框架时提到一点:RPC 请求分为 sync,future,callback,oneway,并且需要遵循一个原则:能够异步的地方就不要使用同...

Java公众号_Kirito的技术分享
2017/12/27
0
0
JS逆向 | 防脱发的秘诀

作者:Jerryning 公众号:Python编程与实战 hello,大jia好,又到了练手时间了,这是我给大伙分享的第…篇逆向文章。前面的几篇猛戳下面: Python爬虫之JS逆向入门篇 JS逆向之新榜登录 JS逆向...

州的先生
2019/08/27
0
0
python练习-001

从今天起,我们进入python的学习,会根据每天一个案例的方法,由浅入深的学习python。 python学习对于初学者来说,最大的问题在于不知道自己学了能做啥,每天敲这些无聊的代码很枯燥,所以学...

致码高胜寒
2019/01/16
0
0
yolov5 简单教程

该库代表Ultralytics对未来对象检测方法的开源研究,并结合了以前的YOLO库https://github.com/ultralytics/yolov3在自定义数据集上训练了数千个模型而得到的最佳实践。**所有代码和模型都在积...

人工智能遇见磐创
11分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部