1
データをロードするときにapache sparkを使用してcsvファイルに相関を適用しています。データセットの列であるヘッダーとして最初の行をスキップする必要があります。 。Sparkで相関行列にヘッダーを追加
相関が計算されますが、相関行列を取得したときに、列名を新しい行列のヘッダーとして追加できません。ヘッダーでマトリックスを取得するには?スパークで
import org.apache.spark.mllib.linalg.{ Vector, Vectors }
import org.apache.spark.mllib.stat.Statistics
import org.apache.spark.mllib.linalg.Matrix
import org.apache.spark.rdd.RDD
val data = sc.textFile(strfilePath).mapPartitionsWithIndex {
case (index, iterator) => if (index == 0) iterator.drop(1) else iterator
}
val inputMatrix = data.map { line =>
val values = line.split(",").map(_.toDouble)
Vectors.dense(values)
}
val correlationMatrix = Statistics.corr(inputMatrix, "pearson")
私は列を操作したい場合、データフレームとしてデータをロードする必要があることを意味しますか? –
@MaherHTBあなたの頭に合わせてすべての列に名前が付けられているので、簡単です。しかし、代わりに、現在のアプローチを使い、 'Source.fromFile(filename).getLines.head'を使ってファイルからヘッダを読みとるだけです。 – Shaido
Dataframeをcsvファイルに保存するという事実は、RDD [Vector]や行列をcsvファイルに保存するよりも時間がかかってしまったので、尋ねました。コードを更新して相関行列を得る方法を教えてくださいヘッダーを2番目の方法を使用する場合、多くの感謝 –