spark的transformation与action
来源:互联网 发布:大数据应用的典型案例 编辑:程序博客网 时间:2024/04/27 23:04
下表列出了Spark支持的一些常见转换。有关详细信息,请参阅RDD API文档(Scala, Java, Python, R)和RDD函数doc(Scala, Java)。
注意:如果您正在进行分组,以便在每个键上执行聚合(如总和或平均值),则使用
reduceByKey
或aggregateByKey
将产生更好的性能。 注意:默认情况下,输出中的并行级别取决于父RDD的分区数。您可以传递一个可选
numTasks
参数来设置不同数量的任务。reduceByKey(func,[ numTasks ])当对(K,V)对的数据集进行调用时,返回(K,V)对的数据集,其中每个键的值使用给定的减函数函数进行聚合,该函数必须是类型(V,V)=> V.像在groupByKey
,减少任务的数量可以通过可选的第二个参数进行配置。aggregateByKey(zeroValue)(seqOp,combOp,[ numTasks ])当(K,V)对的数据集被调用时,返回(K,U)对的数据集,其中使用给定的组合函数和中性“零”值对每个键的值进行聚合。允许与输入值类型不同的聚合值类型,同时避免不必要的分配。像在中groupByKey
,减少任务的数量可以通过可选的第二个参数进行配置。sortByKey([ ascending ],[ numTasks ])在K实现有序的(K,V)对的数据集上被调用时,返回按照布尔ascending
参数中指定的按键按升序或降序排序的(K,V)对的数据集。join(otherDataset,[ numTasks ])当对类型(K,V)和(K,W)的数据集进行调用时,返回一个数据集(K,(V,W))对与每个键的所有元素对。外连接通过支持leftOuterJoin
,rightOuterJoin
和fullOuterJoin
。cogroup(otherDataset,[ numTasks ])当调用类型(K,V)和(K,W)的数据集时,返回一个数据集(K,(Iterable <V>,Iterable W)))元组。此操作也被调用groupWith
。cartesian(otherDataset)当对类型T和U的数据集进行调用时,返回(T,U)对(所有元素对)的数据集。pipe(command,[envVars])通过shell命令管理RDD的每个分区,例如Perl或bash脚本。RDD元素被写入进程的stdin,并且将其stdout的行输出作为字符串的RDD返回。coalesce(numPartitions)将RDD中的分区数减少到numPartition。用于过滤大型数据集后更有效地运行操作。repartition(numPartitions)随机重新清理RDD中的数据以创建更多或更少的分区,并在其间平衡。这总是通过网络洗牌所有的数据。repartitionAndSortWithinPartitions(partitioner)根据给定的分区器重新分配RDD,并在每个生成的分区内按其键分类记录。这比调用更有效repartition
,然后在每个分区内排序,因为它可以将排序推入洗牌机器。操作
下表列出了Spark支持的一些常见操作。参考RDD API文档(Scala, Java, Python, R)和RDD函数doc(Scala, Java)的详细信息。
(Java和Scala)在本地文件系统,HDFS或任何其他Hadoop支持的文件系统的给定路径中,将数据集的元素作为Hadoop SequenceFile写入。这可以在实现Hadoop可写接口的键值对的RDD上使用。在Scala中,它也可以隐式转换为可写的类型(Spark包括基本类型的转换,如Int,Double,String等)。saveAsObjectFile(path)
(Java和Scala)使用Java序列化以简单的格式写入数据集的元素,然后可以使用它进行加载
SparkContext.objectFile()
。countByKey()仅适用于类型(K,V)的RDD。返回与每个键的计数的(K,Int)对的hashmap。foreach(func)在数据集的每个元素上运行函数func。这通常用于副作用,例如更新累加器或与外部存储系统交互。 注意:修改外部的累加器之外的变量
foreach()
可能会导致未定义的行为。有关详细信息,请参阅了解闭包。 阅读全文
1 0
- spark的transformation与action
- Spark的action和transformation
- 【spark】Spark transformation和action的算子
- spark RDD transformation与action函数整理
- spark中RDD的transformation&action
- spark中RDD的transformation&action
- Spark:Transformation和Action
- Spark: Transformation和Action
- Spark: Transformation和Action
- Spark Transformation和Action
- Spark RDD 的Transformation与Action的常用功能总结(Python版本)
- spark rdd详解二(transformation与action操作)
- spark中的action和transformation
- spark中的action和transformation
- spark中的action和transformation
- spark中的action和transformation
- spark transformation和action算子
- transformation and action of spark
- 合并图片添加水印并压缩文件提供下载
- Innodb Cluster 入门(3) Mysql主从复制
- 使用Redis存储Nginx+Tomcat负载均衡集群的Session
- 读《编译原理》第七章,运行时刻环境
- C++中的“error:LNK2005 已经在*.obj中定义”异常问题
- spark的transformation与action
- 正则表达式匹配
- 第一次使用Android Studio时你应该知道的一切配置
- Xutils完全解析(二):ViewUtils和BitmapUtils
- selenium + robotframework的运行原理
- Qt
- leetcode 303. Range Sum Query
- textarea 换行问题
- 用cookie实现记住用户名操作的源码