spark学习-24-Spark算子Transformations和Action使用大全(Action章)
来源:互联网 发布:c语言智能2048 编辑:程序博客网 时间:2024/06/10 05:12
spark学习-22-Spark算子Transformations和Action使用大全(Transformations章(一))
http://blog.csdn.net/qq_21383435/article/details/77529591
spark学习-23-Spark算子Transformations和Action使用大全(Transformations章(二))
http://blog.csdn.net/qq_21383435/article/details/77560174
spark学习-24-Spark算子Transformations和Action使用大全(Action章)
http://blog.csdn.net/qq_21383435/article/details/77560484
3. Action
3.1 reduce
3.1.1 概述
语法(java):
static T reduce(Function2<T,T,T> f)
说明:
对RDD成员使用func进行reduce操作,func接受两个参数,合并之后只返回一个值。reduce操作的返回结果只有一个值。需要注意的是,func会并发执行
3.1.2 Scala示例
def reduce(sc: SparkContext): Unit = { println(sc.parallelize(1 to 10) .reduce((x, y) => x + y))}// 结果55
3.2 collect
3.2.1 概述
语法(java):
static java.util.List<T> collect()
说明:
将RDD读取至Driver程序,类型是Array,一般要求RDD不要太大。
示例略
3.3 count
3.3.1 概述
语法(java):
static long count()
说明:
返回RDD的成员数量
3.3.2 Scala示例
def count(sc: SparkContext): Unit = { println(sc.parallelize(1 to 10) .count)}// 结果10
3.4 first
3.4.1 概述
语法(java):
static T first()
说明:
返回RDD的第一个成员,等价于take(1)
3.4.2 Scala示例
def first(sc: SparkContext): Unit = { println(sc.parallelize(1 to 10) .first())}// 结果1
3.5 take
3.5.1 概述
语法(java):
static java.util.List<T> take(int num)
说明:
返回RDD前n个成员
3.5.2 Scala示例
def take(sc: SparkContext): Unit = { sc.parallelize(1 to 10) .take(2).foreach(println)}// 结果12
3.6 takeSample
3.6.1 概述
语法(java):
static java.util.List<T> takeSample(boolean withReplacement, int num, long seed)
说明:
和sample用法相同,只不第二个参数换成了个数。返回也不是RDD,而是collect。
3.6.2 Scala示例
def takeSample(sc: SparkContext): Unit = { sc.parallelize(1 to 10) .takeSample(withReplacement = false, 3, 1) .foreach(println)}// 结果1810
3.7 takeOrdered
3.7.1 概述
语法(java):
java.util.List<T> takeOrdered(int num)java.util.List<T> takeOrdered(int num, java.util.Comparator<T> comp)
说明:
用于从RDD中,按照默认(升序)或指定排序规则,返回前num个元素。
3.7.2 Scala示例
def takeOrdered(sc: SparkContext): Unit = { sc.parallelize(Array(5,6,2,1,7,8)) .takeOrdered(3)(new Ordering[Int](){ override def compare(x: Int, y: Int): Int = y.compareTo(x) }) .foreach(println)}// 结果876
3.8 saveAsTextFile
3.8.1 概述
语法(java):
void saveAsTextFile(String path)void saveAsTextFile(String path, Class<? extends org.apache.hadoop.io.compress.CompressionCodec> codec)
说明:
将RDD转换为文本内容并保存至路径path下,可能有多个文件(和partition数有关)。路径path可以是本地路径或HDFS地址,转换方法是对RDD成员调用toString函数
3.8.2 Scala示例
def saveAsTextFile(sc: SparkContext): Unit = { sc.parallelize(Array(5,6,2,1,7,8)) .saveAsTextFile("/Users/zhangws/Documents/test")}// 结果/Users/zhangws/Documents/test目录下_SUCCESSpart-00000// part-00000文件内容562178
3.9 saveAsSequenceFile
3.9.1 概述
语法(java):
def saveAsSequenceFile(path: String, codec: Option[Class[_ <: CompressionCodec]] = None): Unit
说明:
与saveAsTextFile类似,但以SequenceFile格式保存,成员类型必须实现Writeable接口或可以被隐式转换为Writable类型(比如基本Scala类型Int、String等)
示例略
3.10 saveAsObjectFile
3.10.1 概述
语法(java):
static void saveAsObjectFile(String path)
说明:
用于将RDD中的元素序列化成对象,存储到文件中。对于HDFS,默认采用SequenceFile保存。
示例略
3.11 countByKey
3.11.1 概述
语法(java):
java.util.Map<K,Long> countByKey()
说明:
仅适用于(K, V)类型,对key计数,返回(K, Int)
3.11.2 Scala示例
def reduce(sc: SparkContext): Unit = { println(sc.parallelize(Array(("A", 1), ("B", 6), ("A", 2), ("C", 1), ("A", 7), ("A", 8))) .countByKey())}// 结果Map(B -> 1, A -> 4, C -> 1)
3.12 foreach
3.12.1 概述
语法(java):
static void foreach(VoidFunction<T> f)
说明:
对RDD中的每个成员执行func,没有返回值,常用于更新计数器或输出数据至外部存储系统。这里需要注意变量的作用域
3.12.2 Java示例
forEach(System.out::println);forEach(v -> System.out.println(v));
3.12.3 Scala示例
foreach(println)
4. 参考
Spark中parallelize函数和makeRDD函数的区别
spark transformation算子
Spark的算子的分类
Spark函数讲解:aggregateByKey
pyspark和spark pipe性能对比 用例程序
Spark Rdd coalesce()方法和repartition()方法
Spark如何解决常见的Top N问题
【Spark Java API】Action(4)—sortBy、takeOrdered、takeSample
- spark学习-24-Spark算子Transformations和Action使用大全(Action章)
- spark学习-22-Spark算子Transformations和Action使用大全(Transformations章(一))
- spark学习-23-Spark算子Transformations和Action使用大全(Transformations章(二))
- spark transformation和action算子
- 【spark】Spark transformation和action的算子
- spark的action和transformations汇集
- Spark action算子案例
- spark之action算子
- spark的算子Tranformation和Action的使用demo
- Spark RDD使用详解5--Action算子
- Spark Transformation和Action算子速查表
- Spark的Transform算子和Action算子列举和示例
- Spark算子-RDD Action(saveAsNewAPIHadoopFile)
- spark的transformation和action算子(基本操作)
- Spark中的各种action算子操作(java版)
- Spark中的各种action算子操作(scala版)
- Spark的Action算子的简单例子
- Spark独到见解--Action算子总结
- HorizontalScrollView简单使用
- Java_20 带缓存的输入/输出流
- hdu6168Numbers(第九场模拟)
- LSTM原理图解析及入门学习
- ubuntu 安装 pip
- spark学习-24-Spark算子Transformations和Action使用大全(Action章)
- 【redis】AOF 持久化
- 如何在Apache中开启虚拟主机
- SSH整合实例
- 随机模拟的基本思想和常用采样方法(sampling)
- 过滤器、监听器、拦截器的区别
- 多条目加载
- Simple Strings CodeForces
- NSData NSString格式相互转换