没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Databricks的Learning Spark - Lighting-Fast Data Analysis,2015-01-26第一版,作者是Holden Karau, Andy Konwinski, Patrick Wendell, and Matei Zaharia,搞Spark的应该都知道吧。这是翻译的第四章,第三章已上传,发现问题请告知,谢谢。
资源推荐
资源详情
资源评论
I
II
Learning Spark
by Holden Karau, Andy Konwinski, Patrick Wendell, and Matei Zaharia
Copyright © 2015 Databricks. All rights reserved.
Printed in the United States of America.
Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.
O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are
also available for most titles (
http://safaribooksonline.com
). For more information, contact our
corporate/
institutional sales department: 800-998-9938 or
corporate@oreilly.com
.
Editors:
Ann Spencer and Marie Beaugureau
Production Editor:
Kara Ebrahim
Copyeditor:
Rachel Monaghan
Proofreader:
Charles Roumeliotis
Indexer:
Ellen Troutman
Interior Designer:
David Futato
Cover Designer:
Ellie Volckhausen
Illustrator:
Rebecca Demarest
February 2015: First Edition
Revision History for the First Edition
2015-01-26: First Release
See
http://oreilly.com/catalog/errata.csp?isbn=9781449358624
for release details.
The O’Reilly logo is a registered trademark of O’Reilly Media, Inc.
Learning Spark
, the cover image of a
small-spotted catshark, and related trade dress are trademarks of O’Reilly Media, Inc.
While the publisher and the authors have used good faith efforts to ensure that the information and
instructions contained in this work are accurate, the publisher and the authors disclaim all responsibility
for errors or omissions, including without limitation responsibility for damages resulting from the use of
or reliance on this work. Use of the information and instructions contained in this work is at your own
risk. If any code samples or other technology this work contains or describes is subject to open source
licenses or the intellectual property rights of others, it is your responsibility to ensure that your use
thereof complies with such licenses and/or rights.
III
译序
嗯,姑且腆着脸叫译序吧。
因为之前工作忙也没顾上看病,后来严重了,被迫割了一刀。所以现在闲赋在家,看看书,
顺便就写下来吧,也算没白看。因为医生不建议久坐,所以我是站在电脑面前打字的,敲的
有点慢,站久了腿疼,你懂的。不过我会努力的,争取恢复上班前把第三章至第九章翻译完。
下面说点正经的。请注意:翻译的 Learning Spark 是 2015 年出版的第一版,不是之前的预
览版,详见封面和第二页的出版信息,对照原文的时候不要弄错。翻译的时候,我尽量保持
内容和原作所在的页码一致,方便各位对照原文帮我纠错。
很明显英语不是我的母语,所以翻译的不正确请原谅,我只能说我尽力了,谢谢!当然,如
果你愿意告诉我哪里错了,那真是太感谢了,好人一生平安~!
如果有啥要指教我的,可以 email: coding_hello@126.com
有更新的话,会放在我的 CSDN 博客: http://blog.csdn.net/coding_hello/article/
或者直接在 CSDN 资源里搜书名吧,那里也会放一份方便查找下载的。
祝各位阅读愉快,工作之余注意身体!
对了,看别人的译著好像一般也都有个感谢的部分会开个单章。现在内容也不全,我就不开
单章感谢了,但是仍然要感谢下我的爸妈,辛苦把我拉扯大了现在还要照顾我这病号。确实
应该去相亲找个媳妇了,一把年纪了还要父母来照顾。
唉,loser!不多说了,我得去各大婚恋网站看看收件箱里有咩妹纸对我有兴趣~
咦,那个妹纸,不要走啊,了解一下嘛~~ 都能谈啊~~ 喂~ 喂喂~~~
47
第四章
处理键值对(Key/Value Pairs)
本章介绍如何处理键值对,这是 Spark 中常见的一种数据类型。键值对 RDD 通
常用于聚合操作,也经常会将一些初始 ETL(提取,转换,加载)获取的数据保存
为键值对的格式。键值对的 RDD 也暴露了一些新的操作(比如每个产品的评价
计数,按相同的键对数据进行分组,对两个不同的 RDD 分组)。
我们也会讨论一个键值对 RDD 的高级特征:分区(partitioning),使用户可以跨节
点控制 RDD 的布局。通过可控的分区,应用程序有时可确保数据在同一个机器
上,可以集中访问,就可以大量的减少通信的开销,以此获得显著的提速。我们
会用一个 PageRand 算法的例子来阐述分区。选择正确的分区对于分布式系统来
说就和本地程序选择正确的数据结构类似,这两者都说明数据的布局对性能的影
响非常大。
动机
Spark 为包含键值对的 RDD 提供了一些特殊的操作。这种 RDD 被称之为 pair
RDD。Pair RDD 在许多程序中都是很有用的组件,因为它们对外的操作可以让
你并行的处理每个键,或者跨网络重组数据。例如,Pair RDD 有一个 reduceByKey()
的方法,它可以对每个键的数据分别进行聚合;join()方法可以通过对两个 RDD
中相同的元素进行分组合并。从 RDD 中抽取字段(例如事件的事件,客户 ID
或者其他标识)并用这些字段作为 pair RDD 的键进行处理是很常见的。
48
创建
Pair RDD
Spark
中有多种方式能得到
pair RDD
。在第五章中我们要探索的很多格式加载时
都可以直接的返回其键值数据为 pair RDD。另外,我们有一个普通 RDD 想要转
换为 pair RDD,可以通过 map()操作来返回键值对。通过代码来看个例子,从一
个包含文本行的 RDD 开始,用每一行的第一个单词作为 key。
这种方式构造键值
RDD
会根据编程语言有些不同。在
Python
中,为了处理有
key 的数据,我们需要返回 tuple 组成的 RDD(见示例 4-1)。
示例
4-1 Python
中使用第一个单词做
key
来创建
pair RDD
pairs = lines.map(lambda x: (x.split(" ")[0], x))
在 Scala 中,为了处理有 key 的数据,我们同样需要返回 tuple(见示例 4-2)。
tuple 类型的 RDD 存在隐式转换,可以提供附加的键值函数。
示例
4-2 Scala
中使用第一个单词做
key
来创建
pair RDD
val pairs = lines.map(x => (x.split(" ")(0), x))
Java
没有内置的
tuple
类型,所以
Spark
的
Java API
有一个用户创建的
scala.Tuple2
类。该类很简单:
Java
用户可以编写
new Tuple2(elem1, elem2)
来创建一个新
tuple
,
然后用._1()和._2()方法来访问 tuple 中的元素。
Java 用户在创建 pair RDD 时同样需要调用特殊版本的 Spark 函数。比如用
mapToPair()
替换基本函数
map()
,在
43
页的“
JAVA
”部分有更多讨论。不过可
以看一个简单的示例 4-3。
示例
4-3 Java
中使用第一个单词做
key
来创建
pair RDD
PairFunction<String, String, String> keyData =
new PairFunction<String, String, String>() {
public Tuple2<String, String> call(String x) {
return new Tuple2(x.split(" ")[0], x);
}
};
JavaPairRDD<String, String> pairs = lines.mapToPair(keyData);
在 Scala 和 Python 中,当从内存中的的集合创建 pair RDD,我们只需要对集合
剩余26页未读,继续阅读
资源评论
野男孩
- 粉丝: 450
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java学生管理系统设计
- 轻舟已过万重山,两岸猿声啼不住
- 炫酷的CSS3登录页面实现
- 基于Java的线上教育网站的设计与实现【附源码】
- LibreOffice Math 指南.pdf
- fiji-仅限个人学习
- 利用SVM(支持向量机)进行图像分割/提取-MATLAB
- 国产DSP AD1565 规格书
- COMSOL变压器温度场流体场二维计算模型,可以得到变压器达到稳态时的温度场和流体场分布
- 学生信息管理系统——c语言
- 百度指数爬虫程序,通过传入登陆百度指数网页之后,输入网页中的cooki序列和想要查询的关键词即可获得想要时间段的关键词搜索数量
- 国产DSP芯片 AD1452
- LibreOffice-7-3-Impress-演示文稿指南-rev1.pdf
- 爬取百度指数 代码,如果cookies失效的,麻烦替换下,爬取关键词和访问量,并保存csv
- 基于Bootstrap实现的生鲜超市模板
- 1_comp0035_coursework_02_2024-v02 (1)(2).pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功