2016-04-25 9 views
0

私はタイプSeq[Seq[(Double, Double)]]の変数を持っている:Seq [Seq [(Double、Double)]]の場合の入力としてRDD [(Double、Double)]を期待する関数の使い方は?

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

今、私は、入力としてRDD[(Double, Double)]を取る関数RegressionMetrics適用したい:

val metrics = new RegressionMetrics(output) 

RDDにSeq[Seq[(Double, Double)]]を変換する方法を、[(ダブル、 Double)] `クラスRegressionMetricsの関数を使用できるようにするには?

答えて

1

RDDあなたはに「接続」または「ハンドル」と考えることができ、SparkContextのインスタンスが必要になりますRDDを作成するには分散弾力性のあるデータセットのためのApacheのスパークの抽象化

ですクラスタはApache Sparkを実行しています。

  • あなたはが、これらは現在に「分割」されている道を無視して、あなたが(Double, Double)値の「フラット」シーケンスとして、あなたの入力を扱いたいSparkContext
  • をインスタンス化していますを想定し

    サブシーケンスのサブシーケンスSeq[Seq[(Double, Double)]]

次のようにRDDを作成できます。

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

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

ありがとう、ありがとう。私はSeqをテスト目的で使用しています。それで、ディスクに保存されているデータを使用する場合は、RDDに読み込んでSeqを置き換えることができます。 – Klue

+0

修正!まず最初に、Sparkのローカルモードを使用して独立したSparkContextを簡単に作成することができます。第二に、実際にはここで示唆したように 'parallelize'を使うか、' SparkContext.textFile'を介して直接ファイルからデータをロードすることができます –

関連する問題