-1
我一個迭代數據框,需要應用一些自定義代碼來的每一行,所以我做這個如何施放任何斯卡拉翻一番
convertedPaths.foreach { row : Row =>
cFMap = row.getValuesMap(channelSet.toSeq)
假設ChannelSet已集中所有列名的。現在我已經聲明cFMap類型爲[String,Any]作爲getValuesMap(正如我所理解的那樣將返回列的數據類型)
此外,所有列都是Long類型,所以我嘗試這樣做:
channelSet.foreach { key : String =>
var frequency = cFMap.get(key).get.asInstanceOf[Double]
var value = c * frequency
給出c是類型雙和值的變量需要爲c和頻率 的產品,但,讓我以下錯誤:
overloaded method value * with alternatives: (x: Double)Double <and> (x: Float)Double <and> (x: Long)Double <and> (x: Int)Double <and> (x: Char)Double <and> (x: Short)Double <and> (x: Byte)Double cannot be applied to (Any)
爲什麼asInstanceOf [雙]不是正確的解決方案和可能的解決方案是什麼?
哪裏'C'來自於「var value = c * frequency」語句和「c」類型是什麼? – Jesper
請參閱:http://stackoverflow.com/q/33007840/1560062,但無論如何,如果convertedPaths是'DataFrame',則代碼無法正常工作。 – zero323
@Jesper我的壞!編輯相同。 – hbabbar