首页
学习
活动
专区
工具
TVP
发布

牛肉圆粉不加葱

专栏作者
94
文章
85204
阅读量
19
订阅数
Spark Join 源码剖析①
在 Spark SQL 中,参与 Join 操作的两张表分别被称为流式表(StreamTable)和构件表(BuildTable),不同表的角色在 Spark SQL 中会通过一定的策略进行设定。通常来讲,系统会将大表设置为 StreamTable,小表设置为 BuildTable。流式表的迭代器为 streamIter,构建表的迭代器为 buildIter。遍历 streamIter 的每一条记录,然后在 buildIter 中查找匹配的记录。这个查找过程称为 build 过程。每次 build 操作的结果为一条 JoinedRow(A, B),其中 A 来自 streamedIter,B 来自 buildIter。
codingforfun
2022-05-23
6860
Spark Aggregations execution
包含 distinct 关键字的 aggregation 由 4 个物理执行步骤组成。我们使用以下 query 来介绍:
codingforfun
2020-03-26
2.7K0
Apache Kylin 概览
Apche Kylin 是 Hadoop 大数据平台上的一个开源 OLAP 引擎。它采用多维立方体(Cube)预计算技术,可以将某些场景下的大数据 SQL 查询速度提升到亚秒级别。相对于之前的分钟乃至小时级别的查询速度。
codingforfun
2019-05-15
1.7K0
Databricks Delta Lake 介绍
Delta Lake 时间旅行允许您查询 Delta Lake 表的旧快照。时间旅行有很多用例,包括:
codingforfun
2019-05-15
2.3K0
Spark 内存管理的前世今生(下)
在《Spark 内存管理的前世今生(上)》中,我们介绍了 UnifiedMemoryManager 是如何管理内存的。然而,UnifiedMemoryManager 是 MemoryManager 而不是 MemoryAllocator 或 MemoryConsumer,不进行实质上的内存分配和使用,只是负责可以分配多少 storage 或 execution 内存给谁,记录各种元数据信息。
codingforfun
2018-08-24
9980
Livy Session 详解(中)
Livy Session 详解(上) - 简书 一文主要介绍了 session 整体的启动流程并详细分析了 client 端(livy server 端)是如何启动 driver 以及建立连接的。本文将进一步分析 session server 端(即 driver 内部)是如何启动、初始化的以及执行代码片段的。
codingforfun
2018-08-24
1.4K0
Spark 内存管理的前世今生(上)
作为打着 “内存计算” 旗号出道的 Spark,内存管理是其非常重要的模块。作为使用者,搞清楚 Spark 是如何管理内存的,对我们编码、调试及优化过程会有很大帮助。本文之所以取名为 "Spark 内存管理的前世今生" 是因为在 Spark 1.6 中引入了新的内存管理方案,而在之前一直使用旧方案。
codingforfun
2018-08-24
1.2K0
Structured Streaming 编程指南
Structured Streaming 是一个基于 Spark SQL 引擎的、可扩展的且支持容错的流处理引擎。你可以像表达静态数据上的批处理计算一样表达流计算。Spark SQL 引擎将随着流式数据的持续到达而持续运行,并不断更新结果。你可以在Scala,Java,Python或R中使用 Dataset/DataFrame API 来表示流聚合,事件时间窗口(event-time windows),流到批处理连接(stream-to-batch joins)等。计算在相同的优化的 Spark SQL 引擎上执行。最后,通过 checkpoint 和 WAL,系统确保端到端的 exactly-once。简而言之,Structured Streaming 提供了快速、可扩展的、容错的、端到端 exactly-once 的流处理。
codingforfun
2018-08-24
2K0
Spark Task 内存管理(on-heap&off-heap)
在之前的文章中(Spark 新旧内存管理方案(上)及Spark 新旧内存管理方案(下)),我从粗粒度上对 Spark 内存管理进行了剖析,但我们依然会有类似这样的疑问,在 task 中,shuffle 时使用的内存具体是怎么分配的?是在堆上分配的还是堆外分配的?堆上如何分配、堆外又如何分配?
codingforfun
2018-08-24
9920
Spark Sql 源码剖析(一):sql 执行的主要流程
之前写过不少 Spark Core、Spark Streaming 相关的文章,但使用更广泛的 Spark Sql 倒是极少,恰好最近工作中使用到了,便开始研读相关的源码以及写相应的文章,这篇便作为 Spark Sql 系列文章的第一篇。
codingforfun
2018-08-24
2K0
Spark Shuffle 模块② - Hash Based Shuffle write
Spark 最开始只有 Hash Based Shuffle,因为在很多场景中并不需要排序,在这些场景中多余的排序反而会损耗性能。
codingforfun
2018-08-24
3630
Spark Storage ③ - Master 与 Slave 之间的消息传递与时机
再次重申标题中的 Master 是指 Spark Storage 模块的 Master,是运行在 driver 上的 BlockManager 及其包含的 BlockManagerMaster、RpcEnv 及 RpcEndpoint 等;而 Slave 则是指 Spark Storage 模块的 Slave,是运行在 executor 上的 BlockManager 及其包含的 BlockManagerMaster、RpcEnv 及 RpcEndpoint 等。下文也将沿用 Master 和 Slave 简称。
codingforfun
2018-08-24
5010
使用 JGibbLDA 进行 LDA 模型训练及主题分布预测
最近新闻个性化推荐项目中用到 LDA 来确定各个新闻的主题分布,我优先使用了 Spark Mllib LDA,发现并不理想,主要表现在极吃内存且计算慢,所以打算暂时放弃之。优先使用 Spark LDA 的主要原因是希望和能和 Spark Streaming 结合在一起进行实时预测。所以在考察新方案时优先考虑 Java 实现的 LDA 开源版本,之后发现了 JGibbLDA,下面从使用角度进行简单介绍
codingforfun
2018-08-24
1.3K0
【源码剖析】- Spark 新旧内存管理方案(上)
Spark 作为一个以擅长内存计算为优势的计算引擎,内存管理方案是其非常重要的模块。作为使用者的我们,搞清楚 Spark 是如何管理内存的,对我们编码、调试及优化过程会有很大帮助。本文之所以取名为 "Spark 新旧内存管理方案剖析" 是因为在 Spark 1.6 中引入了新的内存管理方案,加之当前很多公司还在使用 1.6 以前的版本,所以本文会对这两种方案进行剖析。
codingforfun
2018-08-24
3180
Spark SQL,DataFrame以及 Datasets 编程指南 - For 2.0
Spark SQL 是 Spark 用来处理结构化数据的一个模块。与基础的 Spark RDD API 不同,Spark SQL 提供了更多数据与要执行的计算的信息。在其实现中,会使用这些额外信息进行优化。可以使用 SQL 语句和 Dataset API 来与 Spark SQL 模块交互。无论你使用哪种语言或 API 来执行计算,都会使用相同的引擎。这让你可以选择你熟悉的语言(现支持 Scala、Java、R、Python)以及在不同场景下选择不同的方式来进行计算。
codingforfun
2018-08-24
3.9K0
Spark - 图解 Broadcast 工作原理
Broadcast 是 Spark 常用的特性,本文不打算介绍什么是 Broadcast 及如何使用它,只希望能以下面这张图对 Broadcast 的基础知识和工作原理进行描述:
codingforfun
2018-08-24
7140
为什么 Spark Streaming + Kafka 无法保证 exactly once?
结合文章 揭开Spark Streaming神秘面纱④ - job 的提交与执行我们画出了如下 job 调度执行流程图:
codingforfun
2018-08-24
7200
【容错篇】WAL在Spark Streaming中的应用【容错篇】WAL在Spark Streaming中的应用
WAL 即 write ahead log(预写日志),是在 1.2 版本中就添加的特性。作用就是,将数据通过日志的方式写到可靠的存储,比如 HDFS、s3,在 driver 或 worker failure 时可以从在可靠存储上的日志文件恢复数据。WAL 在 driver 端和 executor 端都有应用。我们分别来介绍。
codingforfun
2018-08-24
1.1K0
揭开Spark Streaming神秘面纱⑥ - Spark Streaming结合 Kafka 两种不同的数据接收方式比较
DirectKafkaInputDStream 只在 driver 端接收数据,所以继承了 InputDStream,是没有 receivers 的
codingforfun
2018-08-24
7290
揭开Spark Streaming神秘面纱② - ReceiverTracker 与数据导入
只需在 driver 端接收数据的 input stream 一般比较简单且在生产环境中使用的比较少,本文不作分析,只分析继承了 ReceiverInputDStream 的 input stream 是如何导入数据的。
codingforfun
2018-08-24
2230
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档