Spark Code中发生了什么

时间:2018-05-09 13:41:17

标签: scala apache-spark sequencefile

RAILS_ENV=test rails db:drop

paths变量具有某些文本文件的位置csv。 这里的代码映射究竟是什么? 有人可以解释一下这里发生了什么。我有点困惑。

1 个答案:

答案 0 :(得分:0)

sc.sequenceFile读取 Hadoop序列文件,它们是存储键值对的平面文件(请参阅https://wiki.apache.org/hadoop/SequenceFile)。它产生一个RDD[(Long, String)] - 一个RDD,其中每个记录是一个键值对(类型为Tuple2[Long, String])。然后,映射仅将每对映射到(使用Tuple2._2)。

结果jsonStringRDD[String]

地图操作可以替换为一些可能会或可能不会更清晰的等效调用:

// Using the implicit PairRDDFunctions.values:
val jsonString = sc.sequenceFile[Long,String](paths).values

// Using map with anonymous argument:
val rdd = sc.parallelize(Seq((1, 2))).map(_._2)

// Using map with pattern matching: 
val rdd = sc.parallelize(Seq((1, 2))).map {
  case (key, value) => value
}