You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Brian Hulette (Jira)" <ji...@apache.org> on 2021/04/28 18:01:00 UTC

[jira] [Updated] (BEAM-12245) Memoize DataFrame operations

     [ https://issues.apache.org/jira/browse/BEAM-12245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Hulette updated BEAM-12245:
---------------------------------
    Status: Open  (was: Triage Needed)

> Memoize DataFrame operations
> ----------------------------
>
>                 Key: BEAM-12245
>                 URL: https://issues.apache.org/jira/browse/BEAM-12245
>             Project: Beam
>          Issue Type: Improvement
>          Components: sdk-py-core
>            Reporter: Brian Hulette
>            Priority: P2
>              Labels: dataframe-api
>
> Currently performing an operation on a deferred dataframe always produces a _new_ deferred dataframe. This means a call like to_pcollection(df.mean(), df.mean()), will produce two distinct PCollections duplicating the same computation.
> This is particularly problematic for the interactive use-case where, to_pcollection is used inside of ib.collect() in combination with PCollection caching. Collecting df.mean() two different times will duplicate the computation unnecessarily.
> We should cache the output expressions produced by operations to prevent this.
> We need to be mindful of inplace operations when implementing this:
> - Two calls to df.mean() should produce the same result iff df has not been mutated in between.
> - If the output of one call to df.mean() is mutated, it must not mutate the output of another call to df.mean().



--
This message was sent by Atlassian Jira
(v8.3.4#803005)