Wenchen Fan commented on SPARK-23333:

I'm a little confused. If we wanna get a random row, why we need to sort? Do we 
have a way to get the dataframe before the sort and call its `first`?

> SparkML VectorAssembler.transform slow when needing to invoke .first() on 
> sorted DataFrame
> ------------------------------------------------------------------------------------------
>                 Key: SPARK-23333
>                 URL: https://issues.apache.org/jira/browse/SPARK-23333
>             Project: Spark
>          Issue Type: Improvement
>          Components: ML, MLlib, SQL
>    Affects Versions: 2.2.1
>            Reporter: V Luong
>            Priority: Major
> Under certain circumstances, newDF = vectorAssembler.transform(oldDF) invokes 
> oldDF.first() in order to establish some metadata/attributes: 
> [https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/ml/feature/VectorAssembler.scala#L88.]
>  When oldDF is sorted, the above triggering of oldDF.first() can be very slow.
> For the purpose of establishing metadata, taking an arbitrary row from oldDF 
> will be just as good as taking oldDF.first(). Is there hence a way we can 
> speed up a great deal by somehow grabbing a random row, instead of relying on 
> oldDF.first()?

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to