文档章节

Spark初步 从wordcount开始

o
 osc_w9s1w4o0
发布于 2019/03/29 17:45
字数 500
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

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)]
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Spark程序编译报错error: object apache is not a member of package org

Spark程序编译报错: [INFO] Compiling 2 source files to E:DevelopIDEAWorkspacesparktargetclasses at 1567004370534 [ERROR] E:DevelopIDEAWorkspacesparksrcmainscalacnitcastwordCoun......

osc_odfa308v
2019/08/28
3
0
Apache Spark渐进式学习教程(三): Spark单节点安装和快速入门Demo

一,下载Spark 使用 Spark 的第一步是下载和解压缩。我们先从下载预编译版本的 Spark 开始。访问 http://spark.apache.org/downloads.html ,进行spark安装包的下载。本文使用版本为:spark-2...

jdzw
2019/07/29
80
0
sbt 编译spark 的wordcount 程序

直接执行 sbt 会在当前目录下面创建 target 目录 sbt 的目录格局一般为 lib/ (该目录下存储与编译相关的 jar 文件) 复制 jar 文件 spark-assembly *hadoop2.5.1.jar 到 lib 目录下 编辑 word...

MtrS
2015/01/05
1.4K
0
Spark on K8S环境部署细节

Spark on K8S环境部署细节 sparkk8s time: Spark on K8S环境部署细节 Spark operator安装 准备kubectl客户端和Helm客户端 安装spark operator Spark wordcount 读写OSS 准备oss依赖的jar包 ...

osc_2w18qc4t
02/06
3
0
Spark基本工作原理与RDD及wordcount程序实例和原理深度剖析

RDD以及其特点 1、RDD是Spark提供的核心抽象,全称为Resillient Distributed Dataset,即弹性分布式数据集。 2、RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每...

qq1137623160
2018/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MongoDB入门系列——3.可视化工具篇

点击上方,轻松关注!! 前面我们已经介绍了MongoDB怎么安装,接下来要安装他的可视化工具——Studio 3T。 先到这下载一个压缩包,百度网盘,https://pan.baidu.com/s/1M8mlWo334KE8I1_UA2Da...

学习Java的小姐姐
2018/11/08
17
0
分层图的绘制 python(来自国外课程)

Exercise 10: Hierarchical clustering of the grain data In the video, you learnt that the SciPy linkage() function performs hierarchical clustering on an array of samples. Use th......

齐勇cn
47分钟前
13
0
微信小程序超简单的双向绑定(类似vue的v-model)

<input model:value="{{value}}" />

祖达
47分钟前
9
0
为什么AngularJS在select中包含一个空选项? - Why does AngularJS include an empty option in select?

问题: I've been working with AngularJS for the last few weeks, and the one thing which is really bothering me is that even after trying all permutations or the configuration de......

技术盛宴
50分钟前
13
0
centos宝塔面板安装及常见错误处理(超级详细)

原文连接:https://www.wjcms.net/archives/centos%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF%E5%AE%89%E8%A3%85%E5%8F%8A%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86%E8%B6%85%E7%......

神兵小将
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部