在Spark中构造元组的RDD时出错

时间:2016-02-22 02:35:38

标签: scala apache-spark

我正在构建一个包含元组的RDD,但看起来有些不对劲。这是我的代码

val RDD2= RDD1.filter {x => x.Tags.get.contains("xxx")}.map{y => {
    val month = y.CreationDate.get.split("-")(1)
    (month, 1)
    }
  }.reduceByKey((a,b) => a+b)

val v = RDD2.take(1)._1

RDD1包含Post定义如下的对象

case class Post(Id: Option[String], Type: Option[String], CreationDate: Option[String], Tags: Option[String])

RDD2应该包含元组,我想获得第一个元组的第一个元素(_1)。但是,RDD2.take(1)似乎是Array[(String,Int)]。为什么?为什么它不是元组?

1 个答案:

答案 0 :(得分:2)

如果您查看API documentationtake会返回Array[T]

def take(num: Int): Array[T] 

您可以使用RDD.first来获取RDD中的第一个元组