
Spark
文章平均质量分 69
Spark
Cym02
才疏学浅 欢迎大家一起沟通,讨论
展开
-
SparkStreaming与Flink的区别 (面试层面~)
对于 Spark Streaming 任务,我们可以设置 checkpoint,然后假如发生故障并重启,我们可以从上次 checkpoint 之处恢复,但是这个行为只能使得数据不丢失,可能会重复处理,不能做到恰好一次处理语义。事件驱动的应用程序是一种状态应用程序,它会从一个或者多个流中注入事件,通过触发计算更新状态,或外部动作对注入的事件作出反应。Spark Streaming 是微批处理,运行的时候需要指定批处理的时间,每次运行 job 时处理一个批次的数据。原创 2022-11-24 10:37:23 · 807 阅读 · 1 评论 -
SparkStreaming 消费Kafka数据的两种方式(Receiver,Direct)~
而在Direct方式中,Kafka中的partition与RDD中的partition是一一对应的并行读取Kafka数据,这种映射关系也更利于理解和优化。在Receiver的方式中,使用的是Kafka的高阶API接口从Zookeeper中获取offset值,这也是传统的从Kafka中读取数据的方式,但由于。的最新的offset,从而定义每个batch的offset的范围。这种新的不基于Receiver的直接方式,是在Spark 1.3中引入的,从而能够确保更加健壮的机制。使用 kafka 的简单 api,原创 2022-11-23 16:17:03 · 948 阅读 · 0 评论 -
Spark广播变量和累加器(示例代码)
默认:Spark应用的算子函数中如果使用到Driver程序定义的变量,则该变量会进行反序列化并且拷贝每一个Task中,Task实际上对拷贝变量副本进行操作。缺点:1.内存式计算:拷贝多份相同外部变量,浪费计算节点内存空间。2.效率:效率低,数据序列化,网络传输,浪费极大资源。广播变量: 优化 算法优化效率极高广播变量使程序员可以在每台计算节点上保留一个只读变量,而不是将其副本与任务...原创 2020-04-14 21:22:08 · 271 阅读 · 0 评论 -
Spark SQL自定义函数及示例代码
自定义函数:内置函数无法满足需求时,通过自定义方式扩展函数库增强功能。单行函数函数应用于每一行数据,返回处理结果。如:upper(小写转大写),lower(大写转小写)object FunctionExample{ def main(args: Array [String]) : Unit= { val spark = SparkSession.builder().appName("...原创 2020-04-21 22:28:34 · 199 阅读 · 0 评论 -
Spark SQL中Join连接概念以及示例代码
Join连接类型内连接:A表和B表符合条件的数据进行连接左外连接:A表的所有数据和B表符合条件的数据进行连接右外连接:B表的所有数据和A表符合条件的数据进行连接全外连接:A表和B符合条件数据连接,并显示两张表未连接的数据笛卡尔连接(交叉连接):A表的每一条数据和B表每一条数据进行连接左半开连接(left semi join):等价于数据库中in,枚举查询左反连接(left anti...原创 2020-04-18 09:31:29 · 683 阅读 · 0 评论 -
Spark SQL中窗口函数(三个案例示例代码)
需要用到的依赖 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.4.4</version> </dependency>...原创 2020-04-17 21:36:04 · 509 阅读 · 0 评论 -
Spark SQL概念与 Dataset和DataFrame的创建
概述:SQL:结构化查询语言Spark SQL是用于结构化数据处理的Spark模块(批/流处理),根据应用中数据类型和转换处理进行自动程序优化。Datasets and DataFramesSpark SQL中的两个非常重要的操作对象。Dataset数据集对象,代表是一个分布式数据集合,类似于功能增强RDD(强大函数和执行优化),Dataset可以通过JVM对象和函数转换操作获得,支持...原创 2020-04-17 12:56:17 · 240 阅读 · 2 评论 -
Spark应用任务的提交流程
开发Spark应用,需要将应用打成计算jar包,上传到Spark集群。接下来通过/spark-submit xxx.jar,初始化Driver Program。Driver程序会进行一系列初始化操作,准备SparkContext对象(运行环境)。请求分布式计算的资源管理器分配相应对应申请单位的计算资源,分布式资源管理器会分配空闲的计算节点,承担本次计算任务(反向注册)。Driver程序分析...原创 2020-04-13 22:25:01 · 235 阅读 · 0 评论