0
我想訪問包含類似於Spark combine columns as nested array星火訪問嵌套列
columnsMap
res95: scala.collection.immutable.Map[String,scala.collection.immutable.Map[String,Array[Double]]] = Map(col1 -> Map(A -> WrappedArray(0.5, 0.6666666666666666), d -> WrappedArray(0.25, 0.3333333333333333), c -> WrappedArray(0.25, 1.0)), col2 -> Map(a -> WrappedArray(0.0, 0.0), g -> WrappedArray(0.0, 0.0), B -> WrappedArray(0.5, 0.6666666666666666), c -> WrappedArray(0.25, 1.0), d -> WrappedArray(0.25, 1.0)), col3TooMany -> Map(C -> WrappedArray(0.75, 0.6), jkl -> WrappedArray(0.0, 0.0), t -> WrappedArray(0.25, 1.0)))
scala> columnsMap.get("col1").get.get("A")
res96: Option[Array[Double]] = Some(WrappedArray(0.5, 0.6666666666666666))
我如何可以訪問WrappedArray
純斯卡拉嵌套數組列?
scala> columnsMap.get("col1").get.get("A").get
java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot be cast to [D
... 42 elided
你的第一個解決方案的回報:任何= WrappedArray(0.5,0.6666666666666666) 我怎麼能訪問第一個雙重價值? –
由於Array是WrappedArray類型,例如沒有真正的陣列,我不清楚如何訪問它。 –
@GeorgHeiler離開這樣,你可以有一個空的數組,所以你需要測試它。你可以通過'nestedArray.headOption'來獲得一個選項[Double],然後你可以測試它的空白。或者,您可以將第二個'getOrElse'更改爲'getOrElse(「A」,Array(0.0))'以確保該數組不是空的,然後就可以執行'nestedArray.head'。 –