首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java RDD与Scala RDD

Java RDD与Scala RDD
EN

Stack Overflow用户
提问于 2016-01-29 09:45:43
回答 2查看 1.8K关注 0票数 1

我在斯派克工作,一路走来接斯卡拉。我有一个关于RDD api以及如何实现各种基本RDD的问题。具体来说,我在火花壳中运行了以下代码:

代码语言:javascript
复制
scala> val gspeech_path="/home/myuser/gettysburg.txt"
gspeech_path: String = /home/myuser/gettysburg.txt

scala> val lines=sc.textFile(gspeech_path)
lines: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[7] 
at textFile at <console>:29

scala> val pairs = lines.map(x => (x.split(" ")(0), x))
pairs: org.apache.spark.rdd.RDD[(String, String)] =  
MapPartitionsRDD[8] at map at <console>:3

scala> val temps:Seq[(String,Seq[Double])]=Seq(("SP",Seq(68,70,75)),
                                       ("TR",Seq(87,83,88,84,88)), 
                                       ("EN",Seq(52,55,58,57.5)),
                                       ("ER",Seq(90,91.3,88,91)))

temps: Seq[(String, Seq[Double])] = List((SP,List(68.0, 70.0, 75.0)), 
(TR,List(87.0, 83.0, 88.0, 84.0, 88.0)), (EN,List(52.0, 55.0, 58.0,  
57.5)), (ER,List(90.0, 91.3, 88.0, 91.0)))

scala> var temps_rdd0=sc.parallelize(temps)
temps_rdd0: org.apache.spark.rdd.RDD[(String, Seq[Double])] = 
ParallelCollectionRDD[9] at parallelize at <console>:29

我想进一步研究一下,并查找MapPartitionsRDDParallelCollectionRDD的API,希望它们是基本org.apache.spark.rdd的子类。但是,当我搜索星火Scala (Scaladocs)时找不到这些类

我只能在spark.apache.org的Java文档中找到它们,而不是Scala文档。根据我对Scala的了解,这两种语言可以混合在一起,因为Spark是用Java编写的。不过,我希望就与农村发展有关的确切关系作出一些澄清。那么,我们是否有一个抽象Scala引用,其底层实现是一个Java,如此响应所示:

代码语言:javascript
复制
# Scala abstract RDD = Concrete Java MapPartitionsRDD
org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[7] 

提前感谢你的帮助/解释。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-29 15:31:18

正如@Archeg在上面的评论中指出的,这些类确实是Scala类,可以在org.apache.spark.rdd.MapPartitionsRDD上找到

https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/MapPartitionsRDD.scala

造成我困惑的原因是当我在MapPartitionsRDD中搜索时,我找不到星火Scaladoc (Scaladoc)

票数 0
EN

Stack Overflow用户

发布于 2017-05-18 06:28:15

MapPartitionsRDD是将提供的函数f应用于父RDD的每个分区的RDD。

默认情况下,它不保留分区preservesPartitioning (最后一个输入参数 - 为false )。如果为真,则保留原始RDD的分区。

MapPartitionsRDD是以下转换的结果:

  1. 地图
  2. 平面图
  3. 过滤器
  4. 幽暗
  5. mapPartitions
  6. mapPartitionsWithIndex
  7. PairRDDFunctions.mapValues
  8. PairRDDFunctions.flatMapValues
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35081321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档