Spark:The Definitive Guide--读书小结(三)

【Spark】实验四:SparkStreaming编程初级实践 【代码】【Spark】实验四:SparkStreaming编程初级实践。 阅读详情

前言

大概花了一个月(2020-09~2020-10)左右的时间,看完了整本书。笔者毕业后,主要从事机器学习、数据挖掘方向的相关工作。由于Spark作为目前主流的分布式计算引擎,个人也一直在用Spark进行相关的数据分析与建模工作。通读全书,感觉比较适合入门级学习,主要介绍了Spark 2.0相关API及Spark生态。涵盖Spark SQL、Struct Streaming、GraphX、MLlib等内容。对初学者而言是一本不错的书籍。

数据、源码链接: https://github.com/databricks/Spark-The-Definitive-Guide

第Ⅰ部分 大数据与Spark概述

链接: https://blog.youkuaiyun.com/Java_Man_China/article/details/109321946

第Ⅱ部分 结构化API–DataFrame、SQL和Dataset

链接: https://blog.youkuaiyun.com/Java_Man_China/article/details/109321946

第Ⅲ部分 低级API

第Ⅱ部分介绍了Spark基于DataFrame的结构化API,在几乎所有的应用场景下都应该尽量使用这些结构化API,当这些结构化API无法满足工作上的特殊需求时,就需要使用Spark的低级API,一种是基于弹性分布式数据集(RDD)、另一种用于分发和处理分布式共享变量(累加器、广播变量)。

  1. flatMap
    flatMap是map函数的扩展,在映射操作中,可以将每个当前行映射为多行。

    在这里插入图片描述

  2. reduce
    reduce方法通过指定一个函数,将RDD中的值规约为一个值。例如:给定一组数字,采用reduce求和,大致过程如下:reduce通过指定一个函数来接受两个参数,然后对他们求和后返回一个新值,新值作为其中一个参数传递给该函数,另一个参数为下一个数字,依次遍历完整个RDD,最终放回一个值,即他们的和。

    在这里插入图片描述

  3. 检查点(checkpointing)
    DataFrame API中没有检查点(checkpointing)这个概念,检查点是指将RDD保存到磁盘上的操作,以便将来对此RDD的引用能直接访问磁盘上的那些中间结果,而不需要从其源头重新计算RDD。它与缓存类似,只是它不存储在内存上,只存储在磁盘上,这在执行迭代计算时是一个很有用的优化。

    在这里插入图片描述
    在这里插入图片描述

  4. map、mapPartitions、mapPartitionsWithIndex
    map针对RDD中的每一个数据进行操作,mapPartitions针对RDD的每一个分区进行操作,mapPartitionsWithIndex与mapPartitions功能一致,后者接受两个参数,一个是分区索引号,一个是遍历分区的迭代器,前者只需一个参数(遍历分区迭代器)即可。当partition数量太大是,一次性处理整个分区可能会导致OOM,但map操作就不会存在这个问题。

  5. glom
    将数据集中的每个分区都转化为数组,分区过大或存在大量分区时,容易导致driver端奔溃

    在这里插入图片描述

  6. keyBy
    根据当前value创建key

    在这里插入图片描述

  7. flatMapValues
    针对key-value形式的RDD,将value扁平化后输出
    在这里插入图片描述

  8. lookup
    查看某个key对应的value
    在这里插入图片描述

  9. groupByKey、reduceBykey
    groupBykey必须将当前key对应的所有value全部加载进内存,如果有严重的负载倾斜的现象,则某些分组可能会导致单台节点OOM。reduceByKey相当于在节点间移动数据前,先对当前节点做了一个groupByKey,然后再移动数据。显然,我们应该尽量使用reduceByKey这类高效算子。

在这里插入图片描述

  1. cogroup
    支持将三个以内的key-value组合在一起
    在这里插入图片描述

  2. zip
    两个RDD进行连接,要求两个RDD数据一样多
    在这里插入图片描述

  3. 自定义分区
    自定义分区是使用RDD的主要原因之一结构化API中并不支持自定义分区。自定义分区的唯一目标是将数据均匀的分布到整个集群中,以避免诸如数据倾斜之类的问题。虽然哈希分区和范围分区很有用,但他们都是最基本的分区,当数据量存在倾斜的时候,需要实现底层的分区方法,你可以尽可能多的拆分这些key以提高并行性,并防止执行过程中的OOM。

在这里插入图片描述

  1. coalesce、repartition
    在这里插入图片描述
  2. 广播变量
    变量未被广播前,在Spark多个操作和作业中,它会被重复发送到工作节点中的每一个作业中,而不是只发送一次。广播变量是共享的,不可以修改的。Spark在集群中通过广播变量可以高效的传输数据,节省了大量的序列化和反序列化的成本。
    在这里插入图片描述
  3. 累加器
    累加器另一种类型的共享变量,它用于将转化操作更新的值以高效和容错的方式传输到其它驱动节点。如果RDD的某个操作要更新累加器,它的值会在实际计算RDD时更新,遵守Spark的惰性评估机制。像map类操作,则不会立马执行。
    在这里插入图片描述在这里插入图片描述

第Ⅳ部分 生产与应用

链接: https://editor.youkuaiyun.com/md/?articleId=109321946//未写待续

第Ⅴ部分 流处理

链接: https://editor.youkuaiyun.com/md/?articleId=109321946//未写待续

第Ⅵ部分 高级分析与机器学习

链接: https://editor.youkuaiyun.com/md/?articleId=109321946//未写待续

第Ⅶ部分 生态系统

链接: https://editor.youkuaiyun.com/md/?articleId=109321946//未写待续

Spark大型项目实战、Elasticsearch完整视频(百度网盘链接) Elasticsearch顶尖高手系列课程(基础篇+高手篇) (从零开始精通分布式搜索ElasticSearch) #有效期 2019.11.22-29 链接:https://pan.baidu.com/s/1cvwmF9AGuGbW0klAhfSP4g 提取码:mgrk 亿级流量电商详情页系统实战(完整版):缓存架构+高可用服务架构+微服务架构 (全网唯一讲亿级流量的课程,而且有落地... 阅读详情

相关推荐

Spark项目实战视频

Spark项目实战视频,内容涵盖scala,kafka,sparkML,mongodb等相关内容

大数据Spark实战视频教程

大数据Spark实战视频培训教程:本课程内容涉及,Spark虚拟机安装、Spark表配置、平台搭建、快学Scala入门、Spark集群通信、任务调度、持久化等实战内容。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

Docker+vLLM内网离线部署Qwen3 流程

本文介绍了在CentOS 7系统下进行VLLM容器化部署Qwen3-32B大模型的内网离线方案。首先需准备Nvidia显卡驱动、CUDA 12.4和Docker环境。通过联网机器拉取vllm/vllm-openai镜像并导入内网服务器,同时从魔塔社区下载模型文件。部署时使用docker run命令启动容器,配置了GPU资源、内存共享、端口映射等参数,特别指定了模型路径、并行计算、内存利用率等关键参数。该方案实现了大模型在内网环境的安全高效部署,适用于需要离线运行的AI推理场景。

qq_42881308的博客 1036

Apache Spark 练习五:使用Spark进行YouTube视频网站指标分析

本章所分析的数据来自于Simon Fraser大学公开的YouTube视频网站的视频数据。数据包含两张表。第一张为视频表,记录了研究人员爬取的视频的元数据信息,具体包括以下字段:

荔枝的FM 5万+

手把手教你用QEMU模拟AST2600-EVB开发板:OpenBMC环境搭建全流程

本文提供了一份详尽的实战指南,手把手教你使用QEMU模拟器搭建AST2600-EVB开发板的OpenBMC环境。内容涵盖从工具链准备、系统镜像获取(官方与自编译),到QEMU启动命令解析、网络配置(用户与桥接模式),以及通过SSH、WebUI和Redfish API访问服务的全流程,帮助开发者在个人电脑上快速构建安全、可复现的嵌入式开发与测试沙盒。

play7的博客 1132

基于Simplis仿真的UC2843芯片建模与关键参数优化指南

本文详细介绍了使用Simplis仿真工具为UC2843 PWM控制器进行行为级建模的方法与关键参数优化实践。通过精确搭建芯片内部振荡器、误差放大器及电流采样等核心模块,工程师可以深入理解其工作原理,并利用模型优化振荡频率、最大占空比及反馈环路等关键参数,从而提升开关电源设计的效率与可靠性。

efc1234567的博客 460

《Spark The Definitive Guide》Spark 权威指南学习计划

本书出自OReilly的《Spark: The Definitive Guide Big Data Processing Made Simple》,由Matei Zaharia, Bill Chambers两位大佬所写,是2018年2月的第一版(我也不清楚有没有最新版,搜也没搜到第二版) 参考本书主页介绍,着眼于Spark 2.0的改进,探索Spark结构化API的基本操作和常用功能,以及用于构建...

weixin_34235371的博客 644

别再手动调参数了!用3ds Max的tyDiffusion插件,5分钟搞定AI动态纹理生成

本文介绍了3ds Max的tyDiffusion插件如何通过AI技术快速生成动态纹理,大幅提升3D美术师的工作效率。从火焰、水流到布料飘动,tyDiffusion能在5分钟内完成传统手工需要数小时的任务,且效果更自然。文章详细解析了插件的核心功能、实战配置及进阶应用,帮助用户轻松实现AI动态纹理生成。

weixin_30919429的博客 667

Spark:The Definitive Guide--读书小结(一)

个人读后小结,如有不对,欢迎批评指正前言第Ⅰ部分 大数据与Spark概述第Ⅱ部分 结构化API--DataFrame、SQL和Dataset第Ⅲ部分 低级API第Ⅳ部分 生产与应用第Ⅴ部分 流处理第Ⅵ部分 高级分析与机器学习第Ⅶ部分 生态系统 前言 大概花了一个月(2020-09~2020-10)左右的时间,看完了整本书。笔者毕业后,主要从事机器学习、数据挖掘方向的相关工作。由于Spark作为目前主流的分布式计算引擎,个人也一直在用Spark进行相关的数据分析与建模工作。通读全书,感觉比较适合入门级学习,主

Java_Man_China的博客 937

J-LINK下载程序出现No Cortex-M Device found in JTAG chain…问题,最全7种解决方法

J-Link下载程序出现No Corect 等的问题的7种方法 后来编辑JLinkSettings.ini文件,找到"Device"项,将其更改Device="Cortex-M0+"

cjmsea的博客 5613

情感分析在金融领域的应用:舆情影响股价预测

我们都知道,股价的波动受到多种因素的影响,而大众的情绪和看法就是其中很重要的一部分。我们在日常生活中都有根据别人的评价来判断事物好坏的经验,在金融市场里,舆情就像是大众对某家公司的集体评价,它能反映出市场参与者的情绪和预期。学习这方面的知识,能帮助投资者更好地把握市场动态,做出更明智的投资决策,无论是个人投资者还是金融机构的分析师,都能从中受益。有一天,你看到某家知名企业被曝光了严重的产品质量问题,新闻铺天盖地,股民们也都在热议纷纷,负面情绪弥漫。这时,你会不会觉得这家公司的股价可能要下跌了呢?

AI 原生应用开发的博客 1145

Spark:The Definitive Guide--读书小结(四)

个人读后小结,如有不对,欢迎批评指正前言第Ⅰ部分 大数据与Spark概述第Ⅱ部分 结构化API--DataFrame、SQL和Dataset第Ⅲ部分 低级API第Ⅳ部分 生产与应用第Ⅴ部分 流处理第Ⅵ部分 高级分析与机器学习第Ⅶ部分 生态系统 前言 大概花了一个月(2020-09~2020-10)左右的时间,看完了整本书。笔者毕业后,主要从事机器学习、数据挖掘方向的相关工作。由于Spark作为目前主流的分布式计算引擎,个人也一直在用Spark进行相关的数据分析与建模工作。通读全书,感觉比较适合入门级学习,主

Java_Man_China的博客 596

新能源汽车整车控制器(VCU)深度全解:硬件原理、工作流程、接口设计与高压安全实战

整车控制器(VCU,Vehicle Control Unit)是新能源纯电动、混动汽车的核心决策大脑,相当于汽车的“中枢神经系统”。它不直接驱动电机,却统筹电机控制器(MCU)、电池管理系统(BMS)、充电机(OBC)、DC/DC、空调、热管理、底盘等全部部件,负责驾驶意图解析、动力输出控制、高压上下电管理、故障安全保护、能量优化等关键任务。VCU所有设计均围绕车规级环境适应性、功能安全(ISO 26262)、实时性、高压安全性四大核心目标,与通用控制器完全不同。

优快云-新能源汽车研发测试专业博主 2474

Spark:The Definitive Guide--读书小结(五)

个人读后小结,如有不对,欢迎批评指正前言第Ⅰ部分 大数据与Spark概述第Ⅱ部分 结构化API--DataFrame、SQL和Dataset第Ⅲ部分 低级API第Ⅳ部分 生产与应用第Ⅴ部分 流处理第Ⅵ部分 高级分析与机器学习第Ⅶ部分 生态系统 前言 大概花了一个月(2020-09~2020-10)左右的时间,看完了整本书。笔者毕业后,主要从事机器学习、数据挖掘方向的相关工作。由于Spark作为目前主流的分布式计算引擎,个人也一直在用Spark进行相关的数据分析与建模工作。通读全书,感觉比较适合入门级学习,主

Java_Man_China的博客 518

麒麟V10 SP1系统下编译linuxdeployqt并打包Qt 5.15.2程序完整指南

麒麟V10 SP1系统下编译linuxdeployqt并打包Qt 5.15.2程序完整指南

ChenJin_2的博客 274

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

大牛书单 | 大数据存储方向好书分享

导语:读书是一生的功课,技术人通过读书实现自我提升,学习优秀知识沉淀。TEG书知道本期特邀腾讯云数仓数据湖产品负责人堵俊平、腾讯云数据库负责人林晓斌、腾讯TEG云架构平台部数据块中心高级工程师王银虎,腾讯TEG计费平台部账户中心专家工程师潘安群为大家带来大数据方向好书推荐。来看看技术大牛在读什么,收藏优质内容,愿本期书单助您更专业。堵俊平,腾讯云数仓数据湖产品负责人,T4专...

weixin_34309543的博客 179

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

如何高效利用gh_mirrors/books79/Books:新手程序员的学习路径规划

gh_mirrors/books79/Books是一个全面的程序员学习资源库,包含从基础编程到高级人工智能的各类技术书籍,帮助新手程序员系统构建知识体系。通过合理规划学习路径,你可以快速掌握核心技能,提升职业竞争力。 ## 📚 快速获取项目资源 要开始使用这个宝藏资源库,首先需要将项目克隆到本地。打开终端,输入以下命令: ```bash git clone https://gitcode.

gitblog_00060的博客 416

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Spark开发工程师(含项目)

本课程为大数据金融信贷项目实战课,着重讲解企业中常用的大数据技术理论与实战,如Hadoop、Hive、HBase、Sqoop、Flume、Kafka、Spark Streaming、Spark SQL、Spark Structured Streaming等。课程包含离线项目和实时项目,从项目业务需求、技术选型、架构设计、集群安装部署、集成开发以及项目可视化进行全方位实战讲解。

大数据的一些入门教程

推荐大家加微信公众号:DT_Spark 这个微信号每天都会更新关于大数据的一些视频 非常的好 1,《大数据不眠夜:Spark内核天机解密(共100讲)》:http://pan.baidu.com/s/1eQsHZAq​2,《Hadoop深入浅出实战经典》http://pan.baidu.com/s/1mgpfRPu​3,《Spark纯实战公益大讲坛》http://pan.baidu.com/s/1

WANGzuo13的专栏 1117

spark培训视频

http://www.chinahadoop.cn/

cnbird's blog 1万+

最全SparkStreaming实践

最全SparkStreaming实践 https://www.jianshu.com/p/3351821217c0

weixin_49319918的博客 13万+

spark大数据分析与实战

本课程总计9大章节,52课时,内容为大数据领域使用广泛spark框架。本课程完整地涵盖了scala语言、spark核心数据结构RDD、spark对结构化数据的处理、HBase分布式数据库、kafka分布式发布订阅消息系统、saprk streaming实时计算框架、spark MLlib机器学习库,最后通过完整的spark实时计算案例将课程的知识点串联进行实践,众所周知,大数据学习过程中,环境部署是一大难点,极容易发生错误,本课程创造性地利用部分脚本,极大地降低了安装环节所遇到的问题。

spark实践

最权威的官网:http://spark.apache.org/ --master // master 的地址,提交任务到哪里执行,例如 spark://host:port, yarn, local --deploy-mode // 在本地 (client) 启动 driver 或在 cluster 上启动,默认是 client --class // 应用程序的主类,仅针对 java ...

dlphay的博客 7万+

sparkStreaming实践

sparkStreaming实践: 案例一: object Scala_List { def main(args: Array[String]): Unit = { Logger.getLogger("org.apache.hadoop").setLevel(Level.WARN) Logger.getLogger("org.apache.spark").setLevel(Level.WARN) Logger.getLogger("org.spark-project").setLevel(

F_fighting117的博客 2万+

spark实践-1

0. lib pyspark, jupyter, numpy, pandas, matplotlib 1. 特征提取 port numpy as np def extract_features(field, categoryMap,featureEnd): categoryIdx = categoryMap[field[3]] categoryFeatures = np.zeros...

leeforrest的博客 15万+

【原创 Hadoop&Spark 动手实践 11】Spark Streaming 应用与动手实践

【原创 Hadoop&Spark 动手实践 11】Spark Streaming 应用与动手实践 目标: 1. 掌握Spark Streaming的基本原理 2. 完成Spark Streaming最简单的演练和动手实验 3. 完成一个完整的Spark Streaming的实际案例(用户手机信息实时分析系统)               ...

weixin_34087307的博客 4234
上一篇: Spark:The Definitive Guide--读书小结(一)
下一篇: Spark:The Definitive Guide--读书小结(四)
小糖宝
博客等级 码龄9年 47粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值