死磕Spark
本专栏初心是为了记录学习spark, 如若能给更多人带来一点点帮助就足矣
雷禄辉
交流治愈愚拙,分享使人进步。
展开
-
Spark学习实例(Python):输入源实时处理 Input Sources Streaming
在之前学习的RDD和DataFrame数据集主要处理的是离线数据,随着时代发展进步,我们会发现越来越多数据是在源源不断发回到数据中心,同时需要立刻响应给用户,这样的情况我们就会用到实时处理,常用的场景有实时显示某商场一小时人流密度、实时显示当天火车站人口总数等等。接下来从实时数据源说起,实时数据源主要有:File Source Socket Source Flume Source Kaf...原创 2019-08-20 16:41:54 · 761 阅读 · 0 评论 -
Spark学习实例(Python):RDD、DataFrame、DataSet相互转换
在学习转换之前先了解以下它们的基本概念RDD:弹性分布式数据集,是一个只读分区集合 DataFrame:以命名列方式组织的分布式数据集,概念上和关系型数据库的一张表一样 DataSet:分布式数据集合,Python暂时不支持了解了基本的概念之后,接下来我们通过代码编写三种数据集的形成RDD的形成from pyspark.sql import SparkSessionif _...原创 2019-08-20 16:44:22 · 5974 阅读 · 1 评论 -
Spark学习实例(Python):共享变量Shared Variables
通常在使用Spark算子函数,比如使用map()或者reduce函数我们向函数传入条件时,函数内部可以使用驱动程序中定义的变量,但是这样会使集群中所有任务都会得到变量新的副本,这些副本的更新不会传播回驱动程序,导致读写共享变量效率低下或者内存溢出,为了解决这个问题Spark提供了两种共享变量类型:广播变量和累加器广播变量:用来高效分发较大对象,只能在Driver定义,不能在Executor端定...原创 2019-08-20 16:40:58 · 1144 阅读 · 0 评论 -
Spark学习实例(Python):RDD执行 Actions
上面我们学习了RDD如何转换,即一个RDD转换成另外一个RDD,但是转换完成之后并没有立刻执行,仅仅是记住了数据集的逻辑操作,只有当执行了Action动作之后才会真正触发Spark作业,进行算子的计算执行操作有:reduce(func) collect() count() first() take(n) takeSample(withReplacement, num, [seed...原创 2019-08-20 16:40:10 · 2749 阅读 · 1 评论 -
Spark学习实例(Python):RDD转换 Transformations
RDD是弹性分布式数据集,一种特殊集合,可以被缓存支持并行操作,一个RDD代表一个分区里的数据集转换操作有:map(func) filter(func) flatMap(func) mapPartitions(func) sample(withReplacement, fraction, seed) union(otherDataset) intersection(otherD...原创 2019-08-20 16:39:21 · 931 阅读 · 0 评论 -
Spark学习实例(Python):保存数据Save Data
我们用Spark处理完数据之后就需要将数据进行落地,比如保存为文本或者插入数据库,这样可以方便之后流程如页面可视化的处理。保存的数据类型有:text csv json jdbc hive hbase kafka elasticsearchtextcsvjsonparquet将这四种保存方式放到一起,是因为保存方式基本相同,为了便于说明保存数据的使用,数据来源采用自己制...原创 2019-08-20 16:38:13 · 4915 阅读 · 0 评论 -
Spark学习实例(Python):加载数据源Load Data Source
我们在使用Spark的时候主要是用来快速处理大批量的数据,那么实际开发和生产中会有哪些数据来源呢,我归类总结有:text csv json parquet jdbc hive kafka elasticsearch接下来所有的测试是基于spark local模式,因为local模式便于测试不依赖spark集群环境。有一点要注意将代码运行在spark集群上时要将.master("...原创 2019-08-09 14:30:32 · 1925 阅读 · 0 评论 -
Spark学习实例(Python):单词统计 Word Count
我们从学习一门新语言如C、Java、Python等基本都是从"Hello World"开始的,而这里的WordCount类似于"Hello World",该实例的功能是统计各个单词出现的次数,比如随意给你一份政府报告找出政府工作重点内容,那么就可以通过单词统计来完成,排除掉那些语气词(啊、的、是等等)出现词的频率越高代表着政府越重视。本文是基于Pyhon的Spark Local来进行,因此需要...原创 2019-07-16 19:41:37 · 4996 阅读 · 0 评论 -
Spark学习实例(Python):窗口操作 Window Operations
说到流处理,Spark为我们提供了窗口函数,允许在滑动数据窗口上应用转换,常用场景如每五分钟商场人流密度、每分钟流量等等,接下来我们通过画图来了解Spark Streaming的窗口函数如何工作的,处理过程图如下所示:上图中绿色的小框框是一批一批的数据流,虚线框和实线框分别是前一个窗口和后一个窗口,从图中可以看出后一个窗口在前一个窗口基础上移动了两个批次的数据流,而我们真正通过算子操作的数...原创 2019-08-20 16:36:40 · 1222 阅读 · 0 评论 -
ElasticSearch中如何使用Spark
ElasticSearch是一个基于Lucene的搜索服务器, 它提供了一个分布式多用户能力的全文搜索引擎, 基于RESTful web接口, 底层是用Java开发的。本文将通过Spark的方式来读取ES,基于以下版本开发测试。 scala-version:2.11.8 spark-version:2.2.0 elasticsearch-version...原创 2019-04-30 16:13:04 · 1707 阅读 · 0 评论 -
Phoenix 中如何使用Spark
Phoenix是使用Java编写的一个开源项目,基于在HBase之上的一个SQL层,能让我们通过标准的JDBC API读写HBase,而不用Scan或者get的方式,其实底层是将SQL编译成原生的HBase scans进行查询。 本文将通过Spark的方式来读写Phoenix,基于以下版本开发测试。 scala-version:2.11.8 sp...原创 2018-07-19 14:00:13 · 2572 阅读 · 0 评论