0
我寫具有以下緩衝模式的UDAF元素:星火不能從「地圖類型」
bufferSchema: StructType = StructType(
StructField("grades", MapType(StructType(StructField("subject", StringType) :: StructField("subject_type", StringType) :: Nil),
ArrayType(StructType(StructField("date", LongType) :: StructField("grade", IntegerType) :: Nil)))) :: Nil)
它看起來像內部火花解釋主要類型爲GenericRowWithSchema,而不是簡單(字符串,串)。 所以每當我試着從地圖拉:
override def update(buffer: MutableAggregationBuffer, input: Row): Unit = {
var buffer_scoresMap = buffer.getAs[Map[(String,String), Array[..]](0)
buffer_scoresMap.get(("k1","k2"))
返回None儘管這一關鍵肯定是在地圖上,我甚至看到它在調試。 我試圖將密鑰變異爲GenericRowWithSchema
,然後回到(String,String)
,然後從地圖上獲取,但沒有運氣。
任何想法?