【发布时间】:2016-03-04 03:22:06
【问题描述】:
我是 Apache Spark 的新手,我有一个文件,其中前 10 个字符是键,其余字符是值的每个句子,我如何对其应用 spark 排序以提取每个句子的前 10 个字符为一个键并作为数据休息,所以最后我得到一个 [key,value] 对 Rdd 作为输出。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql spark-streaming
我是 Apache Spark 的新手,我有一个文件,其中前 10 个字符是键,其余字符是值的每个句子,我如何对其应用 spark 排序以提取每个句子的前 10 个字符为一个键并作为数据休息,所以最后我得到一个 [key,value] 对 Rdd 作为输出。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql spark-streaming
map 与 take 和 drop 应该可以解决问题:
rdd.map(line => (line.take(10), line.drop(10)))
排序:
val sorted = rdd.sortByKey
准备输出:
val lines = sorted.map { case (k, v) => s"$k $v" }
【讨论】:
rdd.map(_.splitAt(10))