我是靠谱客的博主 包容摩托,最近开发中收集的这篇文章主要介绍大数据存储与处理--Spark编程Spark编程实战,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Spark编程实战


一,RDD

  • RDD:resilient distributed dataset
  • RDD两种基本操作:Transformation;Action

二,Transformation

  • filter()
  • map()
  • mapValue():key不变,value变成func(value)
  • mapPartitions()
  • mapPartitionsWithIndex()
  • flatMap():与map()的区别是,可以使转化之后的rdd的element数量改变,将转化变成的二维,再展平,平铺成一维
  • flatMapValue()
  • sample()
  • distinct()
  • union():允许重复值,也因此开销比distinct()小
  • intersection()
  • substract()
  • substractByKey()
  • cartesian()
  • join()
  • groupByKey()
  • reduceByKey()
  • combineByKey()
  • aggregateByKey()
  • sortByKey()
  • cogroup()
  • pipe()
  • coalesce()
  • repatitions()
  • repatitionsAndSortWithinPartitions()
  • keys()
  • values()

三,Action

  • first()
  • count()
  • countByKey()
  • countByValue()
  • take()
  • takeOrdered()
  • takeSample()
  • top()
  • collect():检索整个RDD
  • saveAsTextFile():
  • saveAsSequenceFile()
  • saveAsObjectFile()
  • reduce()
  • fold()
  • aggregate()
  • foreach()
  • mean() 针对特定类型才能用,数值型数据
  • variance() 针对特定类型数据才能用,比如数值型数据
  • lookup()

四,Spark for python

  • 交互式编程:./bin/pyspark

五,Lazy Evaluation for Transformation

六,Lazy Compution for Action

七,Persist RDD

  • 滞留RDD旨在在多次使用的使用避免重复创建RDD
  • 不同的场景使用不同的StorageLevel
  • python通常先序列化需要persist的数据,这些数据作为pickled Object 存在JVM heap

八,SparkConf(),SparkContext()

from pyspark import SparkConf,SparkContext
conf=SparkConf().setMaster("local").setAppName("my app")
sc=SparkContext(conf=conf)
  • sc.textFile(‘path’)
  • sc.paralelize()

九,pairsRDD

十,partition

  • 在join等操作前面对较大dataset用partitionBy(),可以避免这些数据shuffle,从而显著提升速度
  • map有可能改变key值,所以用partitionBy()也可能不起作用

最后

以上就是包容摩托为你收集整理的大数据存储与处理--Spark编程Spark编程实战的全部内容,希望文章能够帮你解决大数据存储与处理--Spark编程Spark编程实战所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部