是否可以通过以下方式将pyspark数据帧传递给XGBClassifer:
from xgboost import XGBClassifer
model1 = XGBClassifier()
model1.fit (df.select(features), df.select('label'))
如果没有,将pyspark数据框适合xgboost的最佳方法是什么?
非常感谢
答案 0 :(得分:1)
我相信有两种方法可以给这只猫做皮。 您可以:
pyspark
方法将pandas
数据帧移动到toPandas()
(或者最好使用pyarrow
)。 pandas
数据帧将与xgboost
一起正常工作。但是,您的数据需要容纳在内存中,因此,如果要处理TB甚至GB的数据,则可能需要进行子采样。xgboost4j
和xgboost4j-spark
软件包。与pyspark
是使用py4j
的包装器一样,这些人可以利用SparkML内置函数,尽管通常用于Scala-Spark。例如,这些包中的XGBoostEstimator
可用作SparkML Pipeline()
对象中的阶段。 希望这会有所帮助。