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文件中花費的時間要多得多。請告訴我如何更新代碼以獲取相關矩陣如果我使用第二種方法,非常感謝 –