Spark Shell入门教程 | 您所在的位置:网站首页 › 启动pyspark默认创建什么对象 › Spark Shell入门教程 |
教程目录
0x00 教程内容0x01 Spark Shell 操作1. 启动与关闭 Spark Shell2. 使用 Spark Shell 进行 Scala 编程
0x02 测试词频统计案例1. 查看 Spark Shell 的启动信息2. 修改词频统计代码3. 执行词频统计代码
0x03 Pyspark 初体验1. 启动与关闭 Pyspark2. 执行 Pyspark 并查看结果
0xFF 总结
0x00 教程内容
Spark Shell 操作测试词频统计案例Pyspark 初体验
学习前提:有一定的Scala基础、基本的 Linux 基础,对Spark有一定的概念,并且安装好了Spark环境。 相关环境参考教程: 1、分布式集群环境之Scala的安装与配置(Centos7) 2、分布式集群环境之Spark的安装与配置(Centos7) 0x01 Spark Shell 操作 1. 启动与关闭 Spark Shella. 启动 Spark Shell Spark-Shell是 Spark 自带的一个 Scala 交互式操作 Shell ,类似于 Python 或者其他脚本语言的 Shell ,其可以以脚本方式进行交互式执行。安装好Spark之后,在任意非bin路径,直接在Linux命令行中输入: spark-shell即可进入 Spark Shell 界面: 启动Spark Shell之后,可以打开一个新的终端,然后输入jps,查看目前有哪些Java进程,可以看到: a. 读取Spark内置数据 数据位置:$SPARK_HOME/data/graphx/users.txt, 如我的位置是(需替换成自己实际的路径):/home/hadoop-sny/bigdata/spark-2.2.0-bin-hadoop2.7/data/graphx/users.txt 查看内容: 我们来统计一下users.txt文件一共有多少行,并且打印第一行内容,进入Spark Shell界面,输入内容: var file = sc.textFile("/home/hadoop-sny/bigdata/spark-2.2.0-bin-hadoop2.7/data/graphx/users.txt") file.count() file.first()
当然,我们还可以继续执行其他操作, 比如查找有多少行含有"Obama": file.filter(line => line.contains("Obama")).count()
此案例来源于教程:IntelliJ IDEA开发Spark案例之WordCount 里0x02 编写WordCount代码的完整代码,如下为教程截图: 我们实际上需要执行的是下面这几句: val textFileRDD = sc.textFile("/home/hadoop-sny/datas/word.txt") val wordRDD = textFileRDD.flatMap(line => line.split(" ")) val pairWordRDD = wordRDD.map(word => (word, 1)) val wordCountRDD = pairWordRDD.reduceByKey((a, b) => a + b) wordCountRDD.foreach(println)代码解释: 第一行:读取一个 word.txt文件,生成一个叫 textFileRDD 的RDD第二行: textFileRDD 调用flatMap算子,对每行进行切分操作,切割符是空格,生成内容为 wordRDD第三行:wordRDD 对切割后的每一个单词进行map映射操作,给每一个单词映射成(word, 1)的形式,生成内容为 pairWordRDD第四行:pairWordRDD 进行 reduceByKey 操作,根据相同的 key,对 value 进行相加操作,也就是统计操作,返回值是 wordCountRDD第五行:打印 wordCountRDD 的内容,也就是查看统计结果,foreach 为action算子,如无Action算子,无法执行 Spark 作业。 创建一个需要统计的新文件 vi /home/hadoop-sny/datas/word.txt添加内容: shao shao shao nai yi yi nai hello hello hi
执行结果如下:
前面的Spark Shell实际上使用的是Scala交互式Shell,实际上 Spark 也提供了一个用 Python 交互式Shell,即Pyspark。 启动: pyspark
作者简介:邵奈一 全栈工程师、市场洞察者、专栏编辑 | 公众号 | 微信 | 微博 | CSDN | 简书 | 福利: 邵奈一的技术博客导航 邵奈一 原创不易,如转载请标明出处。 |
CopyRight 2018-2019 实验室设备网 版权所有 |