Spark基础-低级非结构化API 低级API有两种低级API 处理分布式数据(RDD) 用于分发和处理分布式共享变量(广播变量和累加器) 使用时机 当高级API不满足需求时,比如对集群中数据的物理存储进行非常严格的操作 需要维护遗留的旧版本代码时 需要执行一些自定义共享变量操作时 RDD(弹性分布式数据集) RDD是一个只读不可变的且已经分块的记录合集,可以被并行处理。RDD中记录的仅仅是对应的Java,scala或py 2024-04-25 读书笔记 > Spark #Spark
Spark基础-结构化API和操作 DataFrame和DataSet共同点具有行和列的类似于数据表的集合类型,所有列的行数相同,缺省值用null填充。每一列的所有行数据类型相同。 DataFrame是非类型化的,列的数据类型由spark维护,在运行时检查类型。 可以将DataFrame看作是Row类型的DataSet Dataset是类型化的,仅支持基于JVM的语言,通过case class或Java beans指定类型。在编译时 2024-04-24 读书笔记 > Spark #Spark
Spark基础-Spark基本概念 基本架构Spark程序由一个驱动进程(driver)和多个执行器进程(executor)组成。 driver运行main函数,位于集群中的一个节点上。负责三件事: 维护Spark应用程序相关信息 回应用户的程序或输入 分析任务并分发给若干executor执行executor负责实际的计算工作,每个executor负责两件事情: 执行由driver分配的代码 将计算状态报告给driver 2024-04-22 读书笔记 > Spark #Spark
算法题的ACM模式 简介一般算法题有两种模式,比较熟悉的是lc的那种,你只需要实现一个核心方法,不用关心输入输出的部分。第二种模式就是这里介绍的ACM模式,这个模式下,全部的输入输出都要自己实现。有的面试会以第二种方式出题,需要熟悉一下,不要关键时刻不知道怎么处理。本文以java语言介绍一下ACM模式下应该如何写题接。 输入输出的相关方法Java下,输入输出的方式分别对应Scanner和println 输入用nex 2024-04-20 算法 #算法
Flink基础5篇-5-算子状态相关 键值分区状态经过keyby操作之后,流从dataStream变成keyedStream,此时flink为每一个键值维护一个状态实例。实例会分布在函数所在算子的所有并行任务上。即每个任务负责一部分键值状态的存储。只有作用在keyedStream上的函数才能使用键值分区状态。 键值分区状态目前支持以下原语(状态的数据类型): valueState[T]:T类型的单个值 ListState[T] Ma 2024-04-14 读书笔记 > Flink #flink
回溯算法 基本概念回溯的本质是通过深度遍历的方式找到所有满足条件的可能解。遇到排列组合类的问题,应该联想到通过回溯来解决。常见的问题类似给定一个集合,需要从中挑出一定数量的元素,凑成满足某个条件的解。问一共能找到多少个这样的解,或者列举出所有满足条件的解。 基础实现回溯是有一个基础模版的,在此基础上做微调来解决不同的问题。 12345678910111213141516def bacakTrace(当前元素 2024-04-14 算法 #算法
Flink基础5篇-4-基于时间和窗口的算子 配置时间特性在DataStreamAPI中,可以使用时间特性告知flink在创建窗口的时候如何定义时间 此处可以传入三种值 ProcessingTime:处理时间,由处理机器的系统时间决定 EventTime:根据数据自身包含的信息决定当前时间 IngestionTime:使用处理时间同时自动生成水位线,意义不大分配时间戳和水位线 有两种方法分配时间戳和生成水位线 直接在sourceFun 2024-04-13 读书笔记 > Flink #flink
再谈二分查找 本文补充一些对二分查找的思考以及变体。 算法的核心二分法的核心思想是有限有序的情况下能够快速找到目标值。这是一个很宽泛的条件,千万不要局限在数组这种数据结构中。很多情况下都可以使用二分,而不是一定要有一个数组然后对其进行排序才行。 详细说明下: 有限指的就是所有的可能性是有限的,可枚举的 有序指的是存在着线性的映射关系,即在有限的可能的取值中,每个值和目标值之间是线性关系只要满足上面两种情况,就 2024-04-13 算法 #算法
Flink基础5篇-3-DataStreamAPI Flink流式应用典型步骤 设置执行环境 从数据源中读取一条或多条流 流式转换,实现应用逻辑 结果输出 程序执行设置执行环境 1val env = StreamExecutionEnvironment.getExecutionEnvironment() 读取输入流12345678KafkaSource<String> source = KafkaSource.<String& 2024-04-06 读书笔记 > Flink #flink
Flink基础5篇-2-Flink架构 系统架构flink是一个分布式系统,可以和很多集群管理器(Apache Mesos、YARN 及Kubernetes )集成。也可以作为独立的集群运行。 flink组件Flink 的搭建需要四个不同组件,它们相互协作,共同执行流式应用。这些组 件是:J obManager、ResourceManager、TaskManager 和Dispatcher。 JobManagerjobManager控制 2024-04-06 读书笔记 > Flink #flink