[ 
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]

Reply via email to