spark中的scala的广播变量
来源:互联网 发布:装饰公司网络部计划书 编辑:程序博客网 时间:2024/06/05 03:16
第一种:不可变类型
package com.scala
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
/**
* scala实现广播变量(第一种:不可变类型)
* 增加后的结果:2
增加后的结果:4
增加后的结果:6
增加后的结果:8
增加后的结果:10
*/
object BroadCastValue {
def main(args:Array[String]):Unit={
val conf=new SparkConf().setAppName("BroadCastValue1").setMaster("local[1]")
//获取contex
val sc=new SparkContext(conf)
//创建广播变量
val broads=sc.broadcast(3)//变量可以是任意类型
//创建一个测试的List
val lists=List(1,2,3,4,5)
//转换为rdd(并行化)
val listRDD=sc.parallelize(lists)
//map操作数据
val results=listRDD.map(x=>x*broads.value)
//遍历结果
results.foreach(x => println("增加后的结果:"+x))
sc.stop
}
}
第二种:累加器
package com.scala
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
/**
* 第二种广播变量:累加器
*/
object AccumulatorValue {
def main(args:Array[String]):Unit={
val conf=new SparkConf().setAppName("AccumulatorValue2").setMaster("local[2]")
//获取context
val sc=new SparkContext(conf)
//创建广播变量
var accumulator=sc.accumulator(2)
//创建测试的List
val lists=List(1,2,3,4,5)
//转换list为RDD
val rdd=sc.parallelize(lists)
//进行map操作
val result=rdd.foreach { x => {
if(x<5){
accumulator+=3
// accumulator.add(2)
// println(accumulator.value)不能再task中取值,只能在driver里获取
//Caused by: java.lang.UnsupportedOperationException: Can't read accumulator value in task
}
}}
//取出增加后的广播变量值
println("accumulator is "+accumulator.value)
}
}
- spark中的scala的广播变量
- Spark的广播变量
- spark中的广播变量broadcast
- spark中的广播变量broadcast
- Spark共享变量-Broadcast广播变量介绍及scala实现
- <转>spark中的广播变量broadcast
- spark中的广播变量和累加器
- 【实践】spark streaming中的广播变量应用
- spark中的广播变量与累加器
- Spark的广播变量和累加变量
- Spark Broadcast 广播变量
- Spark之广播变量
- Spark开发-广播变量
- Spark共享变量---Scala
- spark中的Broadcast variables和Accumulator (广播变量和累加器)
- spark广播变量和累加器
- Spark中广播变量知识点
- spark更新广播变量实例
- oracle入门
- Yanmar(洋马)发动机SPN-FMI代码在仪表显示
- js 按照对象某一个属性进行排序
- 使用Maven管理Spring
- 后缀树(Suffix Tree)
- spark中的scala的广播变量
- 隐藏图片和显示图片替换图片
- 数据结构实验六排序
- 位运算符巧用
- Android AccessibilityService使用注意
- 如何将String转为Uri,Uri转为Drawable
- (C++) 作用域和链接
- 智能指针1---AutoPtr
- uiimageview设置contentMode为ScaleAspectFill后显示的不是view的大小而是图片的大小了