学习 Spark 2(七):去重计数

去重计数(count distinct)通常用于计算集合中不重复元素的个数。例如:统计交易的商品数、网站的 UV 等。 HyperLogLog 一般情况下,去重计数的做法是维护元素集合 S,对于一个新的元素 e,如果 S 中包含元素 e 则加入集合 S,否则不加入,集合 S 的元素数量就是计数值。 然而, »

【译】深入理解 Spark SQL 的 Catalyst 优化器

原文:Deep Dive into Spark SQL’s Catalyst Optimizer Spark SQL 是 Spark 最新且技术最复杂的组件之一。它同时支持 SQL 查询和新的 DataFrame API。Spark SQL 的核心是 Catalyst 优化器,它以一种全新的方式利用高级语言的特性(例如: »

学习 Spark Streaming(二):集成 Drools 实现 CEP

CEP CEP(Complex Event Processing 复杂事件处理)是一种事件流处理方式,通过结合多个数据源来推断事件或者模式,从而发现更复杂的情况。 CEP 的一种实现为:流处理 + 规则引擎 添加依赖 Spark 依赖: <dependency> <groupId>org.apache.spark< »

学习 Spark Streaming(一):自定义数据源

在 Spark 中,RDD(Resilient Distributed Dataset 弹性分布式数据集)为数据的抽象,DStreams(Discretized Stream 离散流)则为连续的 RDD 的抽象: Input DStreams 为从流数据源接收的输入数据流。每个 Input DStreams(除了文件流)都与一个 Receiver 对象相关联, »

Spark 应用开发过程

第一步:数据探索 使用 spark-shell 或者笔记型应用(如:Apache Zeppelin)进行数据探索,编写核心的组件或算法代码。 第二步:编码 新建工程,将编写的核心组件或算法代码移到工程中。工程结构按以下三大模块进行组织: Source 数据输入 Process 数据处理 Sink 数据输出 第三步:测试用例 选择 JUnit/ScalaTest »