[jira] [Commented] (SPARK-23030) Decrease memory consumption with toPandas() collection using Arrow
[ https://issues.apache.org/jira/browse/SPARK-23030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16510235#comment-16510235 ] Apache Spark commented on SPARK-23030: -- User 'BryanCutler' has created a pull request for this issue: https://github.com/apache/spark/pull/21546 > Decrease memory consumption with toPandas() collection using Arrow > -- > > Key: SPARK-23030 > URL: https://issues.apache.org/jira/browse/SPARK-23030 > Project: Spark > Issue Type: Sub-task > Components: PySpark, SQL >Affects Versions: 2.3.0 >Reporter: Bryan Cutler >Priority: Major > > Currently with Arrow enabled, calling {{toPandas()}} results in a collection > of all partitions in the JVM in the form of batches of Arrow file format. > Once collected in the JVM, they are served to the Python driver process. > I believe using the Arrow stream format can help to optimize this and reduce > memory consumption in the JVM by only loading one record batch at a time > before sending it to Python. This might also reduce the latency between > making the initial call in Python and receiving the first batch of records. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-23030) Decrease memory consumption with toPandas() collection using Arrow
[ https://issues.apache.org/jira/browse/SPARK-23030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16439727#comment-16439727 ] Bryan Cutler commented on SPARK-23030: -- Hi [~icexelloss], I have something working, just need to write it up then we can discuss on the PR. You're right though, if we want to keep collection as fast as possible, it must be fully asynchronous. Then unfortunately there is no way to avoid the worst case of having all data in the JVM driver memory. I did improve the average case and got a little speedup, so hopefully it will be worth it. I'll put up a PR soon. > Decrease memory consumption with toPandas() collection using Arrow > -- > > Key: SPARK-23030 > URL: https://issues.apache.org/jira/browse/SPARK-23030 > Project: Spark > Issue Type: Sub-task > Components: PySpark, SQL >Affects Versions: 2.3.0 >Reporter: Bryan Cutler >Priority: Major > > Currently with Arrow enabled, calling {{toPandas()}} results in a collection > of all partitions in the JVM in the form of batches of Arrow file format. > Once collected in the JVM, they are served to the Python driver process. > I believe using the Arrow stream format can help to optimize this and reduce > memory consumption in the JVM by only loading one record batch at a time > before sending it to Python. This might also reduce the latency between > making the initial call in Python and receiving the first batch of records. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-23030) Decrease memory consumption with toPandas() collection using Arrow
[ https://issues.apache.org/jira/browse/SPARK-23030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16438001#comment-16438001 ] Li Jin commented on SPARK-23030: Hey [~bryanc], did you by an chance have some process on this? I guess what's tricky here is you probably lose the parallelism if streaming each partitions one by one? > Decrease memory consumption with toPandas() collection using Arrow > -- > > Key: SPARK-23030 > URL: https://issues.apache.org/jira/browse/SPARK-23030 > Project: Spark > Issue Type: Sub-task > Components: PySpark, SQL >Affects Versions: 2.3.0 >Reporter: Bryan Cutler >Priority: Major > > Currently with Arrow enabled, calling {{toPandas()}} results in a collection > of all partitions in the JVM in the form of batches of Arrow file format. > Once collected in the JVM, they are served to the Python driver process. > I believe using the Arrow stream format can help to optimize this and reduce > memory consumption in the JVM by only loading one record batch at a time > before sending it to Python. This might also reduce the latency between > making the initial call in Python and receiving the first batch of records. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org
[jira] [Commented] (SPARK-23030) Decrease memory consumption with toPandas() collection using Arrow
[ https://issues.apache.org/jira/browse/SPARK-23030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16320942#comment-16320942 ] Bryan Cutler commented on SPARK-23030: -- I'm looking into this, will submit a WIP PR if I see an improvement > Decrease memory consumption with toPandas() collection using Arrow > -- > > Key: SPARK-23030 > URL: https://issues.apache.org/jira/browse/SPARK-23030 > Project: Spark > Issue Type: Sub-task > Components: PySpark, SQL >Affects Versions: 2.3.0 >Reporter: Bryan Cutler > > Currently with Arrow enabled, calling {{toPandas()}} results in a collection > of all partitions in the JVM in the form of batches of Arrow file format. > Once collected in the JVM, they are served to the Python driver process. > I believe using the Arrow stream format can help to optimize this and reduce > memory consumption in the JVM by only loading one record batch at a time > before sending it to Python. This might also reduce the latency between > making the initial call in Python and receiving the first batch of records. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org