大数据-spark
文章平均质量分 98
夕阳不近人
是员不是猿。
展开
-
一起学习Spark(一)初步了解Spark
Apache Spark是用于大数据处理的统一分析引擎。1.Spark的优势a)速度跟hadoop的mapreduce相比,他的速度是mapreduce的100倍以上。Spark通过使用最先进的DAG调度器、查询优化器和物理执行引擎实现了在批处理和流式计算两方面的高性能。b)易用性能使用Java、Scala、Python、R和SQL脚本等语言快速编写出应用程序s...原创 2018-12-21 16:18:30 · 314 阅读 · 0 评论 -
一起学习Spark(十)结构化流Structured Streaming编程指南(6)-checkpoint失败恢复&查询更改后的语义恢复&连续处理
1.使用检查点(checkpoint)从失败中恢复在出现故障或有意关闭后,可以使用检查点和写前日志来恢复查询的进度和状态,并从中断的地方继续。我们可以给查询配置一个检查点位置,这样查询会将所有的进度信息(即在每个触发器中处理的偏移范围)和正在运行的聚合(例如之前示例中的word count)保存到检查点的位置。检查点的位置必须是HDFS兼容文件系统中的一个路径,并且可以在启动查询时设置为Dat...原创 2019-02-03 16:24:41 · 1419 阅读 · 0 评论 -
一起学习Spark(九)结构化流Structured Streaming编程指南(5)-Streaming Query
定义了最终结果DataFrame/Dataset之后,剩下的就是开始流计算了,为此,必须使用Dataset.writeStream()方法返回的DataStreamWriter。而且必须在这个接口中指定一个或多个以下内容:1.输出接收器的详细信息:数据格式、位置等。2.输出模式:指定写入输出接收器的内容。3.查询名称:可选,为标识指定查询的唯一名称。4.触发间隔:可选,指定触发间隔...原创 2019-02-03 11:16:32 · 3103 阅读 · 0 评论 -
一起学习Spark(八)结构化流Structured Streaming编程指南(4)-流重复数据的删除&多个水印的处理策略&一些流式DS/DF不支持的方法
流重复数据的删除可以使用一个唯一身份标识符来删除数据流中的重复数据记录。这与使用唯一标识符列对静态数据进行重复数据的删除完全相同,查询将从以前的记录中存储必要数量的数据以用来过滤重复的记录。与聚合类似,这里也可以使用带或不带水印的重复数据删除。1).使用水印,如果数据的到达存在一个延迟多久到达的上限,那么可以在事件时间列上定义一个水印,删除重复数据时将同时使用guid和事件时间列。查询将使...原创 2019-02-02 19:34:33 · 1019 阅读 · 0 评论 -
一起学习Spark(七)结构化流Structured Streaming编程指南(3)-Streaming Join操作
Structured Streaming支持一个流式DataSet/DataFrame与另一个流式或静态的DataSet/DataFrame进行Join操作。Join的结果将会是渐进性的增量改变的,类似于之前的流聚合的结果。在本节中,我们将探索在上述情况下支持哪种类型的连接(即内部连接、外部连接等)。在所有受支持的连接类型中,流DataSet/DataFrame连接的结果与流中包含相同数据的静态D...原创 2019-02-02 14:00:28 · 842 阅读 · 0 评论 -
一起学习Spark(六)结构化流Structured Streaming编程指南(2)-窗口函数
本篇主要内容是Spark Structured Streaming实现事件时间的窗口操作。滑动事件时间窗口的聚合操作对于Structured Streaming非常简单,与分组聚合非常相似。在分组聚合中,会按照用户的指定的一个或多个列进行分组,再为用户指定的分组列中的每个惟一值维护聚合值(例如计数),对于基于窗口的聚合,为每一个事件时间所在的窗口维护聚合值。让我们用一个例子来理解它。比如现...原创 2019-02-01 20:27:43 · 1096 阅读 · 0 评论 -
一起学习Spark(五)结构化流Structured Streaming编程指南(1)-基本介绍
概述Structured Streaming是建立在SparkSQL引擎之上的可伸缩和高容错的流式处理引擎,我们可以像操作静态数据的批量计算一样来执行流式计算。当流式数据不断的到达的过程中Spark SQL的引擎会连续不断的执行计算并更新最终结果。DataSet/DataFrame的api也可以应用在Structured Streaming流式计算中,例如流式聚合,时间事件窗口,数据的join...原创 2019-01-28 21:12:24 · 850 阅读 · 0 评论 -
Spark从Mysql中根据条件查询数据并写入到Mongodb
Spark支持的数据源非常之多,例如textfile,Hive,jdbc,sequence file等等,这里我想展示的是一个从Mysql中读取数据经过处理分析后存入Mongodb的例子。语言自然是Scala,下面直接放上代码:package com.testimport com.mongodb.{MongoClient, MongoClientURI}import org.apach...原创 2019-01-20 20:35:08 · 1498 阅读 · 0 评论 -
一起学习Spark(三)Spark RDD编程
一般来说,每个Spark应用程序都有一个Driver程序,Driver运行用户编写的main函数,并在集群上执行各种并行操作。Spark提供的一个主要抽象概念就是RDD(resilient distributed dataset),RDD是可以并行计算的跨集群节点分区的元素结合,RDD可以通过hdfs(也可以是其他hadoop支持的文件系统)或者现有的Scala集合转换得到,Spark还允许我们将...原创 2019-01-14 15:29:56 · 788 阅读 · 0 评论 -
一起学习Spark(四)Spark SQL、DataFrames和Datasets
概念简介Spark SQL是Spark用来处理结构化数据的模块,与基本的Spark RDD API不同,Spark SQL提供的接口为Spark提供了关于数据和计算执行的结构的更多信息。在内部,Spark SQL使用这些额外的信息来执行额外的优化。有几种与Spark SQL交互的方法,包括SQL和DataSet API,他们在计算结果时使用相同的执行引擎,而不是依赖于用来表达计算的API或编程...原创 2019-01-20 18:13:32 · 523 阅读 · 0 评论 -
一起学习Spark(二)Spark Quick Start
本篇博客将介绍如何快速的上手使用spark,关于spark与hadoop安装相关的内容我这里不多说了,对应的资料与博客很多。 在Spark2.0以前,Spark的主要编程接口是RDD(弹性分布式数据集)。在2.0以后的版本,RDD被Dataset取代了,相比于RDD,Dataset底层有着更丰富的优化,也同时拥有更优秀的性能。在2.0及以后的版本,RDD仍然被支持,但Spark官...原创 2019-01-03 11:06:05 · 378 阅读 · 0 评论 -
一起学习Spark(十一)Structured Streaming与Spark Streaming的取舍
Spark Streaming概念特性介绍通过之前的文章我们了解了Structured Streaming是建立在SparkSQL引擎之上的可伸缩和高容错的流式处理引擎,那么Spark Streaming又是何方神圣呢?Spark Streaming 是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。支持从多种数据源获取数据,包括Kafka、Flume、以及...原创 2019-02-04 20:04:04 · 1006 阅读 · 0 评论