Spark初步 从wordcount开始
Spark初步-从wordcount开始
spark中自带的example,有一个wordcount例子,我们逐步分析wordcount代码,开始我们的spark之旅。
准备工作
把README.md文件复制到当前的文件目录,启动jupyter,编写我们的代码。
README.md文件在Spark的根目录下。
from pyspark.sql import SparkSession
from operator import add
# 初始化spark实例,并把应用命名为wordcount
spark = SparkSession.builder.appName("WordCount").getOrCreate()
# 从文件读取内容
# 此时data为dataframe格式,每一行为文件中的一行
data = spark.read.text("README.md")
# 查看第一行数据
f = data.first()
f
Row(value='# Apache Spark')
# 查看前5行数据
data.take(5)
[Row(value='# Apache Spark'),
Row(value=''),
Row(value='Spark is a fast and general cluster computing system for Big Data. It provides'),
Row(value='high-level APIs in Scala, Java, Python, and R, and an optimized engine that'),
Row(value='supports general computation graphs for data analysis. It also supports a')]
# 把数据转换为rdd格式,并取出值
data2 = data.rdd.map(lambda x: x[0])
# 查看第一行数据,可以看到数据为string格式
data2.first()
'# Apache Spark'
# 对于每行按照空格来分割,并把结果拉平
data3 = data2.flatMap(lambda x: x.split(' '))
# 查看前5个数据,可以看到已经分割为单个词了
data3.take(5)
['#', 'Apache', 'Spark', '', 'Spark']
# 为每个单词标记次数1
data4 = data3.map(lambda x: (x,1))
# 结果为turple类型,前面是key,后面的数字为单词的次数
data4.take(5)
[('#', 1), ('Apache', 1), ('Spark', 1), ('', 1), ('Spark', 1)]
# 汇总统计每个单词出现的次数
data5 = data4.reduceByKey(add)
# 结果为turple类型,数字为单词的出现次数
data5.take(10)
[('#', 1),
('Apache', 1),
('Spark', 16),
('', 71),
('is', 6),
('a', 8),
('fast', 1),
('and', 9),
('general', 3),
('cluster', 2)]
# 按照出现次数多少来排序
res = data5.sortBy(lambda x: x[1], ascending=False).collect()
res[:5]
[('', 71), ('the', 24), ('to', 17), ('Spark', 16), ('for', 12)]
完整代码
from pyspark.sql import SparkSession
from operator import add
spark = SparkSession.builder.appName("WordCount").getOrCreate()
data = spark.read.text("README.md")
data1 = data.rdd.map(lambda x: x[0])
data2 = data1.flatMap(lambda x: x.split(' ')).map(lambda x: (x, 1)).reduceByKey(add)
res = data2.sortBy(lambda x: x[1], ascending=False).collect()
print(res[:10])
[('', 71), ('the', 24), ('to', 17), ('Spark', 16), ('for', 12), ('and', 9), ('##', 9), ('a', 8), ('can', 7), ('on', 7)]
Spark初步 从wordcount开始的更多相关文章
- Spark metrics on wordcount example
I read the section Metrics on spark website. I wish to try it on the wordcount example, I can't make ...
- Spark练习之wordcount,基于排序机制的wordcount
Spark练习之wordcount 一.原理及其剖析 二.pom.xml 三.使用Java进行spark的wordcount练习 四.使用scala进行spark的wordcount练习 五.基于排序 ...
- Spark Streaming的wordcount案例
之前测试的一些spark案例都是采用离线处理,spark streaming的流处理一样可以运行经典的wordcount. 基本环境: spark-2.0.0 scala-2.11.0 IDEA-15 ...
- Spark学习之wordcount程序
实例代码: import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.ap ...
- 006 Spark中的wordcount以及TopK的程序编写
1.启动 启动HDFS 启动spark的local模式./spark-shell 2.知识点 textFile: def textFile( path: String, minPartitions: ...
- 在Spark上运行WordCount程序
1.编写程序代码如下: Wordcount.scala package Wordcount import org.apache.spark.SparkConf import org.apache.sp ...
- 提交任务到spark(以wordcount为例)
1.首先需要搭建好hadoop+spark环境,并保证服务正常.本文以wordcount为例. 2.创建源文件,即输入源.hello.txt文件,内容如下: tom jerry henry jim s ...
- 50、Spark Streaming实时wordcount程序开发
一.java版本 package cn.spark.study.streaming; import java.util.Arrays; import org.apache.spark.SparkCon ...
- Spark中的Wordcount
目录 通过scala语言基于local编写spark的Wordcount 基于yarn去调度WordCount 通过scala语言基于local编写spark的Wordcount import org ...
随机推荐
- String的replaceAll()用法详解
使用replaceAll实现字符串替换,即把字符串某些字符全部替换成别的 // 将str中的所有数字替换为"数字"二字 String str = "abc123bcd45 ...
- 如何通俗的理解spring的控制反转、依赖注入、面向切面编程等等
之前一直不理解spring的一些基础特性是什么意思,虽然网上的解释也很多,但是由于我比较笨,就是看不懂,知道最近才稍微了解,下面就以通俗讲解的方式记录下来. 前言 假设我是一个没有开店经验的小老板,准 ...
- C3垂直居中均分
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 使用OAuth2的SSO分析
参考:https://github.com/spring-guides/tut-spring-security-and-angular-js/blob/master/oauth2-vanilla/RE ...
- hibulder中使用git教程
https://jingyan.baidu.com/article/25648fc19c14839191fd0027.html
- app与手机其他软件交互测试
针对智能终端应用的服务等级划分方式及实时特性所提出的测试方法.交叉测试又叫事件或冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰的测试.如:App在前/后台运行状态时与来电 ...
- Apache启动不了httpd: apr_sockaddr_info_get() failed xgp
httpd: apr_sockaddr_info_get() failed for hoteel httpd: Could not reliably determine the server's fu ...
- ubuntu16.04如何安装搜狗输入法
1 . 首先我们需要先来下载支持linux版本的搜狗输入法安装包,这里我们先查看下自己的ubuntu系统是什么版本的,这里我们可以在右上角的那个齿轮图标点击查看"系统设置",在里面 ...
- IDEA使用教程
以下内容引自: https://www.cnblogs.com/yjd_hycf_space/p/7483921.html IntelliJ IDEA使用教程(很全) 这个编辑器我就不再多做介绍了.直 ...
- 【BZOJ 4016】 [FJOI2014]最短路径树问题
题目链接: TP 题解: 我就是个智障.明明是道大水题,硬是拖了6h. 关于这道题我唯一想说的就是,记得更新拆分后的子树大小!!!我就是ZZ恒(QwQ. 代码: #define Troy 10/26 ...