摘要:
类 scala的类定义非常灵活 定义一个带构造函数的类 通过this来重写构造函数 除了重写构造函数,还可以当作当前对象的引用。 等价于 继承 scala属于单继承。跟java一样,scala使用extends关键字来继承父类,使用override重写父类方法。scala的方法的重载与重写遵循jav 阅读全文
摘要:
写在前面 面向java开发者。实际上,具有java基础学习scala是很容易。java也可以开发spark,并不比scala开发的spark程序慢。但学习scala可有助于更快更好的理解spark。比如spark的很多算子group,filter之类的,全都是scala语言本身所具备的功能。再比如, 阅读全文
摘要:
前言 传统的RDD相对于mapreduce和storm提供了丰富强大的算子。在spark慢慢步入DataFrame到DataSet的今天,在算子的类型基本不变的情况下,这两个数据集提供了更为强大的的功能。但也有些功能暂时无法使用。比如reduceByKey,在DataFrame和DataSet里是没 阅读全文
摘要:
DAG 中文名有向无环图。它不是spark独有技术。它是一种编程思想 ,甚至于hadoop阵营里也有运用DAG的技术,比如Tez,Oozie。有意思的是,Tez是从MapReduce的基础上深化而来的分布式计算框架。其核心思想是将Map和Reduce两个阶段分成更多的函数,各个函数之间可自由组合,形 阅读全文
摘要:
数据结构 核心之数据集RDD 俗称为弹性分布式数据集。Resilient Distributed Datasets,意为容错的、并行的数据结构,可以让用户显式地将数据存储到磁盘和内存中,并能控制数据的分区。同时,RDD还提供了一组丰富的操作来操作这些数据。 RDD的特点 它是在集群节点上的不可变的、 阅读全文
摘要:
spark streaming是以batch的方式来消费,strom是准实时一条一条的消费。当然也可以使用trident和tick的方式来实现batch消费(官方叫做mini batch)。效率嘛,有待验证。不过这两种方式都是先把数据从kafka中读取出来,然后缓存在内存或者第三方,再定时处理。如果 阅读全文
摘要:
本人是spark的拥趸,因为工作中需要用到jstorm,作记录如下。 pom.xml <dependencies> <dependency> <groupId>com.alibaba.jstorm</groupId> <artifactId>jstorm-core</artifactId> <ver 阅读全文
摘要:
Structured streaming是spark 2.0以后新增的用于实时处理的技术。与spark streaming不同的是,Structured streaming打开了数据源到数据落地之间的限制,它这两个端整合起来,形成真正的“流”,形成一张巨大的表。同时也正因为此特点,真正实现了exac 阅读全文
摘要:
之前一直对窗口操作不太理解。认为spark streaming本身已经是分片计算,还需要窗口操作干啥。 窗口操作最为简单易懂的场景就是,在M时间间隔计算一次N时间内的热搜。当M=N的时候,就像上述所说,窗口操作本身没什么优势;但当在M!=N的时候,窗口计算优势就体现出来了。 之前用storm的窗口计 阅读全文
摘要:
1:伴生对象与apply方法如果一个class与一个object具有相同的名字,那么我们就认为它们互为伴生。object为class的伴生对象。如下图所示,object Apply为class Apply的伴生对象。需要注意的小细节是,伴生对象的apply函数哪怕没有参数也需要加上一对”()”.cl... 阅读全文