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

牛肉圆粉不加葱

专栏作者
94
文章
85127
阅读量
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
Flink PartitionerFlink Partitioner
GlobalPartitioner 分区器会将上游所有元素都发送到下游的第一个算子实例上(SubTask Id = 0)
codingforfun
2021-11-24
4170
Flink 作业生成②:StreamGraph -> JobGraph
由前文我们知道,StreamGraph 表示一个流任务的逻辑拓扑,可以用一个 DAG 来表示(代码实现上没有一个 DAG 结构),DAG 的顶点是 StreamNode,边是 StreamEdge,边包含了由哪个 StreamNode 依赖哪个 StreamNode。本文我们主要介绍一个 StreamGraph 是如何转换成一个 JobGraph。
codingforfun
2021-05-27
1.2K0
Calcite - 看懂 Parser.jj 中的 SqlSelect
javacc 会根据 parser.jj 中定义的相互穿插的 Token、Java 代码来自动生成 org.apache.calcite.sql.parser.impl.SqlParserImpl 的代码。本文期望以一个简单的 Select 语句为例来说清楚 Sql 语句、Sql 语法定义、SqlParser 之间的关系。
codingforfun
2021-05-17
1.8K0
Flink 作业生成①:生成 StreamGraph
如上,通过 DataStreamSource<OUT> StreamExecutionEnvironment#addSource(SourceFunction<OUT> function) 设置 SourceFunction 并返回一个 DataStreamSource。关于 SourceFunction、SourceContext 等请查看
codingforfun
2021-05-17
7720
Spark Aggregations execution
包含 distinct 关键字的 aggregation 由 4 个物理执行步骤组成。我们使用以下 query 来介绍:
codingforfun
2020-03-26
2.7K0
Apache Kylin 查询流程源码剖析
其中 olap_model_6607769716595835175.json 内容如下:
codingforfun
2019-05-31
1K0
可能是全网最深度的 Apache Kylin 查询剖析
该过程主要封装在 OLAPToEnumerableConverter#implement 中,主要流程如下:
codingforfun
2019-05-31
1.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
Structured Streaming 源码剖析(一)- Source
Source 必须不断地到达数据以进行流式查询。 Source 必须具有单调递增的进度概念,用 offset 表示。 Spark 将定期查询每个 Source 以查看是否有更多数据可用
codingforfun
2019-03-04
1K0
第一讲 ①:What is Machine Learning
学习是从观察触发,听觉是一种观察,视觉是一种观察,也许甚至有更多例例如嗅觉或触觉都是一种观察,从这些观察出发,然后经过我们脑袋的内化转化的过程,最后变成有用的技巧和技能。这就是一个学习的过程。机器学习就是用电脑来模拟这样一个过程。
codingforfun
2019-02-22
3250
Spark SQL Limit 介绍及优化
全局限制,最多返回 limitExpr 对应条 records。总是通过 IntegerLiteral#unapply(limitExpr: Expression): Option[Int] 将 limitExpr 转换为 Int。
codingforfun
2018-09-27
3.2K0
Spark 内存管理的前世今生(下)
在《Spark 内存管理的前世今生(上)》中,我们介绍了 UnifiedMemoryManager 是如何管理内存的。然而,UnifiedMemoryManager 是 MemoryManager 而不是 MemoryAllocator 或 MemoryConsumer,不进行实质上的内存分配和使用,只是负责可以分配多少 storage 或 execution 内存给谁,记录各种元数据信息。
codingforfun
2018-08-24
9970
Spark Sql 源码剖析(二): TreeNode
使用 object CurrentOrigin 为 TreeNodes 提供一个可以查找上下文的地方,比如当前正在解析哪行 code。
codingforfun
2018-08-24
8680
Livy Session 详解(下)
即上图中的第 9 步中的 executeCodeFunc,用来真正运行代码片段的函数,流程如下
codingforfun
2018-08-24
7760
Apache Livy 实现思路及模块概述
关于Apache Livy(下文简称 livy)是什么以及有什么用,请移步:Livy:基于Apache Spark的REST服务
codingforfun
2018-08-24
1.7K0
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
Spark Sql 源码剖析(三):Analyzer
当一条 sql 语句被 SparkSqlParser 解析为一个 unresolved logicalPlan 后,接下来就会使用 Analyzer 进行 resolve。所谓的 resolve 也就是在未解析的 db、table、function、partition 等对应的 node 上应用一条条 Rule(规则)来替换为新的 node,应用 Rule 的过程中往往会访问 catalog 来获取相应的信息。
codingforfun
2018-08-24
1.1K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档