我正在嘗試使用mapGroups
執行聚合,它返回SparseMatrix作爲其中一列,然後對列進行求和。如何在Spark數據集中創建一個TypedColumn並對其進行操作?
我爲映射行創建了一個case class
模式以提供列名稱。矩陣列輸入org.apache.spark.mllib.linalg.Matrix
。如果在執行彙總(select(sum("mycolumn")
)之前未運行toDF
,則會出現一個類型不匹配錯誤(required: org.apache.spark.sql.TypedColumn[MySchema,?]
)。如果我包括toDF
,我會得到另一個類型不匹配錯誤:cannot resolve 'sum(mycolumn)' due to data type mismatch: function sum requires numeric types, not org.apache.spark.mllib.linalg.MatrixUDT
。那麼,正確的做法是什麼?
謝謝。請你可以建議一個解決方案的附加問題?這就是我現在卡住的地方。 – Emre
矩陣密集或稀疏嗎?大小是多少? – zero323
相當小而稀疏;小到足以放在節點上。 – Emre