如何使用期望RDD [(Double,Double)]的函数作为Seq [Seq [(Double,Double)]]的情况的输入?

时间:2016-04-25 14:11:56

标签: scala apache-spark rdd

我有一个Seq[Seq[(Double, Double)]]类型的变量:

val output: Seq[Seq[(Double, Double)]] = runStreams(ssc, numBatches, numBatches)

现在我想应用以RegressionMetrics作为输入的函数RDD[(Double, Double)]

val metrics = new RegressionMetrics(output)

如何将Seq[Seq[(Double, Double)]]转换为RDD [(Double,Double)]`以便能够使用RegressionMetrics类的函数?

1 个答案:

答案 0 :(得分:1)

RDD是Apache Spark对分布式弹性数据集的抽象

要创建RDD,您需要一个SparkContext的实例,可以将其视为运行Apache的群集的“连接”或“句柄”火花。

<强>假设

  • 您有一个实例化的SparkContext
  • 您希望将输入视为(Double, Double)值的“平坦”序列,忽略这些当前“拆分”为Seq[Seq[(Double, Double)]] <中的子序列的方式/ LI>

您可以按如下方式创建RDD:

val sc: SparkContext = ???
val output: Seq[Seq[(Double, Double)]] = ???

val rdd: RDD[(Double, Double)] = sc.parallelize(output.flatten)