随笔分类 - Spark
摘要:Structured Streaming Structured Streaming 是 Spark Streaming 的进化版 Spark 编程模型的进化过程 总结 RDD 的优点 面向对象的操作方式 可以处理任何类型的数据 RDD 的缺点 运行速度比较慢, 执行过程没有优化 API 比较僵硬,
阅读全文
摘要:SparkStreaming 介绍 流式计算框架 批计算 数据已经存在, 一次性读取所有的数据进行批量处理 流计算 数据源源不断的进来, 经过处理后落地 特点 Spark Streaming 会源源不断的处理数据, 称之为流计算 Spark Streaming 并不是实时流, 而是按照时间切分小批量
阅读全文
摘要:聚合 使用 functions 函数进行聚合 import org.apache.spark.sql.functions._ val groupedDF: RelationalGroupedDataset = pmDF.groupBy('year) groupedDF.agg(avg('pm) as
阅读全文
摘要:Dataset (DataFrame) 的基础操作 有类型操作 分类算子解释 转换 flatMap 通过 flatMap 可以将一条数据转为一个数组, 后再展开这个数组放入 Dataset import spark.implicits._ val ds = Seq("hello world", "h
阅读全文
摘要:数据读写 DataFrameReader 组件解释 schema 结构信息, 因为 Dataset 是有结构的, 所以在读取数据的时候, 就需要有 Schema 信息, 有可能是从外部数据源获取的, 也有可能是指定的 option 连接外部数据源的参数, 例如 JDBC 的 URL, 或者读取 CS
阅读全文
摘要:案例一:词频统计 要求:统计Harry Potter.txt文件中出现最多单词前十位 内容样例: def WordCount(): Unit ={ val conf=new SparkConf().setMaster("local[6]").setAppName("wordCount") val s
阅读全文
摘要:SparkSQL 发展过程 解决的问题 Spark SQL 使用 Hive 解析 SQL 生成 AST 语法树, 将其后的逻辑计划生成, 优化, 物理计划都自己完成, 而不依赖 Hive 执行计划和优化交给优化器 Catalyst 内建了一套简单的 SQL 解析器, 可以不使用 HQL, 此外, 还
阅读全文
摘要:Spark底层逻辑 Spark部署 针对于上图, 可以看到整体上在集群中运行的角色有如下几个: Master Daemon 负责管理 Master 节点, 协调资源的获取, 以及连接 Worker 节点来运行 Executor, 是 Spark 集群中的协调节点 Worker Daemon Work
阅读全文
摘要:Action算子 Action function 解释 reduce((T,T)=>U) 对整个结果集规约, 最终生成一条数据, 是整个数据集的汇总 count() 返回元素个数 collect() 以数组形式返回数据集中所有元素 first() 返回第一个元素 take(N) 返回前N个元素 co
阅读全文
摘要:RDD为什么会出现? MapReduce 执行迭代计算任务 多个 MapReduce 任务之间没有基于内存的数据共享方式, 只能通过磁盘来进行共享,这种方式明显比较低效 RDD执行迭代计算任务 在 Spark 中, 最终 Job3 从逻辑上的计算过程是: Job3 = (Job1.map).filt
阅读全文
摘要:RDD概念 定义 RDD(Resilient Distributed Datasets), 是一个容错的, 并行的数据结构, 可以让用户显式地将数据存储到磁盘和内存中, 并能控制数据的分区. 同时, RDD 还提供了一组丰富的操作来操作这些数据. 在这些操作中, 诸如 map, flatMap, f
阅读全文
摘要:下载并上传 官网下载:下载 Spark 安装包, 下载时候选择对应的 Hadoop 版本,然后上传到虚拟机上 解压并拷贝 # 解压 Spark 安装包 tar xzvf spark-2.2.0-bin-hadoop2.7.tgz # 移动 Spark 安装包 mv spark-2.2.0-bin-h
阅读全文