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

How to use the function that expects RDD[(Double, Double)] as an input for a case of Seq[Seq[(Double, Double)]]?

我有一个 Seq[Seq[(Double, Double)]]:

类型的变量
val output: Seq[Seq[(Double, Double)]] = runStreams(ssc, numBatches, numBatches)

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

val metrics = new RegressionMetrics(output)

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

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

的抽象

要创建一个 RDD 你需要一个 SparkContext 的实例,它可以被认为是 "connection" 或 "handle" 到 集群 运行 阿帕奇星火。

假设:

  • 你有一个实例化的SparkContext
  • 您希望将您的输入视为 "flat" 值的 (Double, Double) 序列,忽略 目前这些 "split" 的方式-Seq[Seq[(Double, Double)]]
  • 中的序列

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

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

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