【发布时间】:2021-11-02 01:28:41
【问题描述】:
将 scala 数据帧转换为 XGBoost4J 的稀疏 dmatrix 的最有效和可扩展的方法是什么?
假设我有一个数据框 train,其中包含 row_index、column_index 和 value 列,它会是这样的
new DMatrix(train.select("row_index"), train.select("column_index"), train.select("Value"), DMatrix.SparseType.CSR, n_col)
但是,上面的代码会导致类型不匹配,因为 DMatrix 需要 Array[Long]。
train.select(F.collect_list("row_index")).first().getList[Long](0) 似乎是一个可能的选择,但它似乎不是内存友好和可扩展的。
我在 Databricks 上执行此操作,因此欢迎使用其他受支持语言(python、SQL、scala)的解决方案。
【问题讨论】:
-
@AlexOtt 是的,我有。所有示例都使用宽格式数据。我的数据是长格式的,由于它非常稀疏,我试图避免转向宽格式
标签: scala apache-spark-sql sparse-matrix databricks xgboost