Data Element

我干了什么 究竟拿了时间换了什么

Spark 3.0 关键新特性回顾

新特性

Spark 3.0 关键新特性回顾 从Spark 3.0官方的Release Notes可以看到,这次大版本的升级主要是集中在性能优化和文档丰富上(如下图),其中46%的优化都集中在Spark SQL上。 今天Spark SQL的优化不仅仅服务于SQL语言,还服务于机器学习、流计算和DataFrame等计算任务, 因此社区对于Spark SQL的投入非常大。对外公布的TPC-DS性能测试...

InfoQ--揭秘Apache Spark 3.0 新特性在FreeWheel核心业务数据团队的应用与实战

最佳实践

引言 相信作为Spark的粉丝或者平时工作与Spark相关的同学大多知道,Spark 3.0在2020年6月官方重磅发布,并于9月发布稳定线上版本,这是Spark有史以来最大的一次release,共包含了3400多个patches,而且恰逢Spark发布的第十年,具有非常重大的意义。 团队在Spark发布后,快速动手搭好Spark 3.0的裸机集群并在其上进行了初步的调研,发现相较于Spa...

Hadoop之MapReduce内部机制

MapReduce到底有什么问题?

作为Hadoop里重要的分布式计算组件MapReduce到底存在什么样的问题,大家纷纷都转投其他技术栈?我们来一起探个究竟。本文会先详细解析一下整个MapReduce的过程,编程方式,然后再去分析一下存在的问题和其中可以借鉴的点。 Map Reduce的过程详细解析 ① : 每个数据的Split对应一个Map任务作为Map的输入,一般来说是HDFS的一个Block。 ② : Ma...

RDD Internal

Deep Dive and Notes

RDD Five Main Properties A list of partitions A function for computing each split A list of dependencies on other RDDs Optionally, a partitioner for key-value RDDs (e.g. to say that the RD...

Scala Example Code

Good Example or Template

Good Code Example in Spark Exception and Finally Helper function for exception and finally 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 /** * Execut...

Notes of Scala Usage in Spark

What I Saw

Sealed Trait 作用: 为了防止case class match的时候遗漏某些cases, 如果有遗漏会报错 要求: 定义的Trait和继承类的需要在同一个文件里 Example: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 sealed trait MultipleWatermarkPolicy { def choo...

Multiple Threads

Notes of the thread usage in Spark

Daemon countDownLatch countDownLatch 会使一个线程等待其他线程各自执行完毕后再执行 通过一个计数器来实现,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1, 当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了. Example: 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

Notes of Spark Structured Streaming

Some keynotes of structured streaming

Deduplicate Removing duplicates bounded by a watermark Custom Stateful Processing Use mapGroupsWithState and flatMapGroupsWithState to customized your stateful processing Reference Arbitary st...

Companion Object in Scala

why we need the the companion object?

阅读spark源码的时候,看到很多地方都是对象和伴生对象在一起,好奇为什么需要伴生对象? 原因 scala没有static关键字,但是对于类很多时候需要静态变量或者方法,所以伴生对象很多时间扮演这个补充角色 对象负责定义实例成员变量和方法,而伴生对象负责定义静态变量和方法 伴生对象里的apply方法,也可以间接扮演工厂方法的角色,这样new一个对象的时候不需要用new,直...

Cache of Spark Structured Streaming

Support or Not?

Update the Static Data Periodic Try the StreamingQueryListerner, generate the temp table, persist/unpersist? Example Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28...