我是靠谱客的博主 斯文中心,最近开发中收集的这篇文章主要介绍spark的使用Spark简介,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Spark简介

  spark是通过scala进行编写的,是一个快速,通用的大规模搜索引擎,与hadoop的MR类似,但是spark减少了shuffle过程来达到快速处理的效果从而可以实现数据的实时流处理,Spark Streaming将流式计算分解成一系列短小的批处理计算,并且提供高可靠和吞吐量服务。值得说明的是,无论是Spark SQL、Spark Streaming、GraphX还是MLlib,都可以使用Spark核心API处理问题,它们的方法几乎是通用的,处理的数据也可以共享,不仅减少了学习成本,而且其数据无缝集成大大提高了灵活性。
 

Spark常用方法介绍

  map:返回一个新的分布式数据集,由每个原元素经过func函数转换后组成,也是spark最常用的              方法,在数据处理中大部分都是通过map来转换成指定的格式而从进行操作,如在处理数                据的时候将数据以元组,或者Row的形式返回用于后面形成以DataFormate用于以sql的形              式来进行操作,并保存到hive表或者mysql表中等。

  filter:返回一个新的数据集,由经过func函数后返回值为true的原元素组成,在数据处理过程中                可以用于过滤掉不符合要求的数据,如在进行日志判断的时候可以给不符合的日志一个标              识,之后可以通过filter过滤掉不符合要求的数据,从而减少后面对数据计算的负担。

  flatMap:类似于map,但是每一个输入元素,会被映射为0到多个输出元素(因此,func函数的                返回值是一个Seq,而不是单一元素)。

  union:返回一个新的数据集,由原数据集和参数联合而成。

  groupByKey:搜先使用该方法的RDD内部需要以k-v的形式也就是元组,这样他就会通过key来               进行分组,返回一个(K,Seq[V])对的数据集,默认情况下,使用8个并行任务进行分组,             你可以传入numTask可选参数,根据数据量设置不同数目的Task(groupByKey和filter结                 合,可以实现类似Hadoop中的Reduce功能)

  reduceByKey:在一个(K,V)对的数据集上使用,返回一个(K,V)对的数据集,key相同的              值,都被使用指定的reduce函数聚合到一起。和groupbykey类似,任务的个数是可                        以通过第二个可选参数来配置的,一般用于对于相同key的数据的value来进行相加,也有普            通的reduce,使用reduce,RDD不需要是元组的形式,正常的正数等就可以。

  join:在类型为(K,V)和(K,W)类型的数据集上调用,返回一个(K,(V,W))对,每个key中的所有           元素都在一起的数据集,也就是将数据进行合并的作用。

groupWith:在类型为(K,V)和(K,W)类型的数据集上调用,返回一个数据集,组成元素为(K,                 Seq[V], Seq[W]) Tuples。这个操作在其它框架,称为CoGroup。

sortByKey:在类型为( K, V )的数据集上调用,返回以K为键进行排序的(K,V)对数据集。升序          或者降序由boolean型的ascendingOrder参数决定(类似于Hadoop的Map-Reduce中间阶段           的Sort,按Key进行排序)。

count:统计RDD中的数据的个数。

collect:在Driver的程序中,以数组的形式,返回数据集的所有元素。这通常会在使用filter或者其          它操作后,返回一个足够小的数据子集再使用,直接将整个RDD集Collect返回,很可能会让          Driver程序OOM,他会将RDD转换成一个数组的形式返回。

take:获取字符串的前几个字符,可以进行指定,如take(2)就是获取字符串的前两个字符。

takeRight:获取字符串后几个字符,可以进行指定,如takeRight(2)就是获取字符串的后两个字              符。

drop:获取字符串中除了指定的个数的字符的剩余字符,如drop(1)就是获取字符串中除了第一个           字符的剩下的字符串,它是从前往后的。

dropRight:获取字符串中除了指定的个数的字符的剩余字符,如drop(1)就是获取字符串中除了第           一个字符的剩下的字符串,它是从后往前的。

first:获取数据集的第一个数据。

saveAsTextFile:将数据集的元素,以textfile的形式,保存到本地文件系统,hdfs或者任何其它             hadoop支持的文件系统。Spark将会调用每个元素的toString方法,并将它转换为文件中的一         行文本。

foreach:在数据集的每一个元素上,运行函数func。这通常用于更新一个累加器变量,或者和外           部存储系统做交互,用于遍历RDD中的数据。

cache:可以让它在第一次计算后,将结果保持存储在内存。数据集的不同部分,将会被存储在计        算它的不同的集群节点上,让后续的数据集使用更快。缓存是有容错功能的,如果任一分区的       RDD数据丢失了,它会被使用原来创建它的转换,再计算一次(不需要全部重新计算,只计算       丢失的分区),可以用于计算后的数据及逆行保存到内存中用于当数据丢失根据stage的依赖连       进行重新计算的时候就可以根据该保存的数据直接来使用,减少重复计算的过程,从而提高效       率。

最后

以上就是斯文中心为你收集整理的spark的使用Spark简介的全部内容,希望文章能够帮你解决spark的使用Spark简介所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(79)

评论列表共有 0 条评论

立即
投稿
返回
顶部