xgboost4j-spark中碰到not found key:train

先说解决方案:把xgboost model的num_worker参数调小。

这个问题是在本地测试xgb时候碰到的,之前code在分布式集群上面测试过了,并没有问题。
bug诡异,所以查了一波几乎没有答案,只有一个,说可能是某个partition上data size为0。于是把问题定位在partition不合适上,但是本地partition不合适…emm觉得可能是df的partition分的太大了,而本地测试为了run起来只用了很少量的数据导致的,于是拼命在repartition的时候设置超小的值,but it doesn't work...
调了好半天发现是xgb的num_worker这个参数设置太大了。xgb中num_worker这个参数是表示模型在run的时候,会并行跑多少个worker,而每个worker起码是会分配到一个partition的。所以partition设置的越小,反而越多worker没有数据,嗷嗷待哺。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容