Python 3.x Python培训和Spark部署

Python 3.x Python培训和Spark部署,python-3.x,scala,apache-spark-mllib,xgboost,apache-spark-ml,Python 3.x,Scala,Apache Spark Mllib,Xgboost,Apache Spark Ml,是否可以在python中训练XGboost模型,并在spark环境中使用保存的模型进行预测?也就是说,我希望能够使用sklearn来训练XGboost模型,保存模型。在spark中加载保存的模型并在spark中进行预测。这可能吗 编辑: 谢谢大家的回答,但我的问题是。在培训和预测XGBoost的不同绑定时,我看到了以下问题 在培训期间,我将在python中使用XGBoost,而在预测时,我将在mllib中使用XGBoost 我必须从XGBoost python加载保存的模型(例如:XGBoost

是否可以在python中训练XGboost模型,并在spark环境中使用保存的模型进行预测?也就是说,我希望能够使用sklearn来训练XGboost模型,保存模型。在spark中加载保存的模型并在spark中进行预测。这可能吗

编辑: 谢谢大家的回答,但我的问题是。在培训和预测XGBoost的不同绑定时,我看到了以下问题

  • 在培训期间,我将在python中使用XGBoost,而在预测时,我将在mllib中使用XGBoost

  • 我必须从XGBoost python加载保存的模型(例如:XGBoost.model文件),以便在spark中进行预测,该模型是否与mllib中的预测函数兼容

  • python中的XGBoost和spark mllib中的XGBoost的数据输入格式都不同。Spark采用矢量汇编格式,但使用python,我们可以将数据帧作为这样的格式提供。那么,当我试图用python训练的模型在spark中进行预测时,我如何输入数据呢。我能在没有矢量汇编的情况下输入数据吗?spark mllib中的XGboost predict函数是否将非矢量组合数据作为输入


  • 您可以使用
    spark submit
    命令在spark上运行python脚本,以便在spark上编译python代码,然后可以预测spark中的值。

    您可以使用
    spark submit
    命令在spark上运行python脚本,以便在spark上编译python代码,然后可以预测spark中的值火花。

    你可以

  • 使用pyspark sql加载数据/munge数据
  • 然后使用collect/topandas(性能瓶颈)将数据带到本地驱动程序
  • 然后在本地驾驶员上训练xgboost
  • 然后准备测试数据作为RDD
  • 将xgboost模型广播到每个RDD分区,然后并行预测数据
  • 这一切都可以在一个脚本中完成,您可以提交,但为了使内容更加简洁,我建议将训练/测试分为两个脚本

    因为步骤2,3发生在驱动程序级别,没有使用任何集群资源,所以您的工作人员没有做任何您可以做的事情

  • 使用pyspark sql加载数据/munge数据
  • 然后使用collect/topandas(性能瓶颈)将数据带到本地驱动程序
  • 然后在本地驾驶员上训练xgboost
  • 然后准备测试数据作为RDD
  • 将xgboost模型广播到每个RDD分区,然后并行预测数据
  • 这一切都可以在一个脚本中完成,您可以提交,但为了使内容更加简洁,我建议将训练/测试分为两个脚本


    因为步骤2,3发生在驱动程序级别,没有使用任何集群资源,所以您的工作人员没有做任何事情

    下面是一个类似的实现。我有一篇解释细节的帖子,因为我正在尝试解决帖子中描述的错误,以使笔记本中的代码正常工作


    其想法是使用
    xgboost
    进行训练,然后通过
    spark
    协调每个模型在
    spark worker
    上运行,然后通过
    xgboost
    predict_proba()
    spark ml
    predict()应用预测

    下面是一个类似的实现。我有一篇解释细节的帖子,因为我正在尝试解决帖子中描述的错误,以使笔记本中的代码正常工作



    我们的想法是使用
    xgboost
    进行训练,然后通过
    spark
    协调每个模型在
    spark worker
    上运行,然后通过
    xgboost
    predict\u proba()
    spark ml
    predict()应用预测,您想使用spark mllib或sklearn来训练XGBoost模型。已编辑问题。进行检查。您可以使用
    spark
    作为编排系统,通过
    spark sklearn
    模块来训练和预测
    sklearn
    模型。它会将每个模型的迭代推送到不同的
    spark
    执行者。因此,您希望使用spark mllib或sklearn来训练XGBoost模型。编辑问题。进行检查。您可以使用
    spark
    作为编排系统,通过
    spark sklearn
    模块来训练和预测
    sklearn
    模型。它会将每个模型的迭代推送到不同的
    spark
    执行器。但是当我在spark提交时使用python scrip时,我必须使用spark mllib,对吗?我想用sklean进行训练,用mllib进行预测。你是说我们可以用spark submit在spark环境下运行python代码吗?但是当我在spark submit上使用python scrip时,我必须使用spark mllib,对吗?我想使用sklean进行培训,并使用mllib进行预测。您是否建议我们可以使用spark submit在spark环境中运行python代码?谢谢您的回复。我试试看。但我再次希望有人能确认这是可能的。spark中的XGBoost采用矢量组合数据格式。在python中,我们将输入数据帧。spark将如何处理输入格式中的这种变化?我知道,您的xgboost绑定是在scala中进行的,但您希望在本地使用python进行培训?有两个问题,如果您的scala mllib已经有xgboost绑定,为什么不训练分布式使用scala pyspark.mllib呢?为什么您要使用分布式版本进行预测,您仍然可以使用经过训练的模型实现分布式训练?我在mllib中XGboost的训练精度非常低,我无法找出原因。测试auc为90%,在spark中约为80%。)分布式培训还不成熟。我也经常看到它。在这种情况下,训练驾驶员,准备pyspark RDD,每个分区都是数据的子集,将xgboost广播到每个分区,使用map partition将数据合并到一个dmatrix,然后预测使用模型感谢您的回复。我试试看。但我再次希望有人能证实这一点