0
我有一個DataFrame,其列名爲KFA包含一個兩端都帶有尖括號的字符串。有在這一長串的4個值。我想這個轉換成具有矢量數據幀。如何將帶有字符串的DataFrame轉換爲帶有Scala(Spark 2.0)中的向量的DataFrame
這是數據框的第一個元素:
> dataFrame1.first()
res130: org.apache.spark.sql.Row = [[.00663 .00197 .29809 .0034]]
你能幫我,轉變爲具有4個雙值的密集向量。
我已經試過此命令
dataFrame1.select("KFA")
.map((x=>x.mkString("").replace("]","").replace("[","").split(" ")))
.rdd.map(x=>Vectors.dense(x(0).toDouble,x(1).toDouble,x(2).toDouble,x(3).toDouble,x(4).toDouble))
這看起來很笨拙且無法讀取。你可以建議這樣做的任何其他方式?
有什麼'mkString'的目的,如果你只是要拆呢? –
@ cricket_007使用'mkString'因爲我不能用'.replace(「]」,「」)'在spark.sql.Row –
你並不需要創建一個字符串,我不認爲。你可以從'一排的對象getAs [雙]' –