basic spark or spark essentials(notes)

Posted satyrs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了basic spark or spark essentials(notes)相关的知识,希望对你有一定的参考价值。

  • parallelized,lazily transform,cache(),actions
  • 算子

算子是RDD中定义的函数,可以对RDD中的数据进行转换和操作。数据转化为Spark中的数据块,通过BlockManager进行管理。

  1. Transformation: 
    1. value类:不触发提交作业,处理Value型数据
    2. Key-Value:不触发提交作业,处理(k,v)型数据
  2. Action: 触发SparkContext提交Job作业
  • KEY-VALUE

reduceByKey(func)=>(k,v) 对key一样的piar的value进行lambda

sortByKey() 

groupByKey()

  • Use Case

1  大量var的单一或迭代job  只读table的lookup;ML里的vector计算

2  job执行时有count事件

  1. broadcast var
  2. accumulators
    1. 只能被关联op加运算,提高parallel counters and sums,只有driver可读,task不能。
    2. 在action中每个task只能更新一次accm,而transformation中则不一定。transformation可能需要运行多次如果一个node很慢或失败。=>accum在transformation中只能用于debug
    3. def f(x): {global accum;accum+=x}  rdd.foreach(f)

只读var(a large dataset) cached on workers,无论多少tasks只ship给worker一次-using efficient broadcast algorithm

 

driver:   sc.broadcast([1,2,3])

worker:     broadcasVar.value

 

  • example for broadcast var--contact中的所属国家统计

1建一个表2求(k,v)的function3将此function放入map中

4spark自动创建一个closure包含这个function以及1所建立的表,一起发送给worker

计算第二个的时候,4将被spark重复

=>broadcast to all workers ,使4不用重复

  • example for accumulators--空行count

1开始设置accum为0 2func:空行则accum+1 否则返回line.split(" ")

3将func为参用flatMap file.flatMap(func) 对每一行func,返回一seq为line以" "分割的每个word

  • groupByKey  join  groupWith 
  • saveAsTextFile saveAsSequenceFile

 

以上是关于basic spark or spark essentials(notes)的主要内容,如果未能解决你的问题,请参考以下文章

SPARK push-based shuffle mapTask是怎么获取ESS列表信息

SPARK SHUFFLE中 ShuffleId BlockManagerId 以及 与ESS(External Shuffle Server)交互

[Paxos三部曲之一] 使用Basic-Paxos协议的日志同步与恢复

在 Spark 中处理 Join ON OR

SPARK 是怎么清除Shuffle中间结果数据的

运行spark时提示 env: ‘python’: No such file or directory