[
https://issues.apache.org/jira/browse/SPARK-5981?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14349217#comment-14349217
]
Joseph K. Bradley commented on SPARK-5981:
------------------------------------------
I'd recommend exploring the code path used for DecisionTreeModel. Here's a
sketch:
* DecisionTreeModel.predict(PythonRDD) (driver) (Python)
** JavaModelWrapper.call (driver) (Python)
*** Fetches JVM model's method (driver) (Python)
*** PythonRDD gets converted to a Scala RDD (This will become little tasks on
the workers to materialize the RDD.)
*** DecisionTreeModel.predict(RDD) (driver) (Scala)
**** Everything here happens as usual in the JVM (This includes
predict(Vector) on the workers.)
Does that help?
> pyspark ML models should support predict/transform on vector within map
> -----------------------------------------------------------------------
>
> Key: SPARK-5981
> URL: https://issues.apache.org/jira/browse/SPARK-5981
> Project: Spark
> Issue Type: Improvement
> Components: MLlib, PySpark
> Affects Versions: 1.3.0
> Reporter: Joseph K. Bradley
>
> Currently, most Python models only have limited support for single-vector
> prediction.
> E.g., one can call {code}model.predict(myFeatureVector){code} for a single
> instance, but that fails within a map for Python ML models and transformers
> which use JavaModelWrapper:
> {code}
> data.map(lambda features: model.predict(features))
> {code}
> This fails because JavaModelWrapper.call uses the SparkContext (within the
> transformation). (It works for linear models, which do prediction within
> Python.)
> Supporting prediction within a map would require storing the model and doing
> prediction/transformation within Python.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]