[ 
https://issues.apache.org/jira/browse/BEAM-12245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17549269#comment-17549269
 ] 

Danny McCormick commented on BEAM-12245:
----------------------------------------

This issue has been migrated to https://github.com/apache/beam/issues/20875

> Memoize DataFrame operations
> ----------------------------
>
>                 Key: BEAM-12245
>                 URL: https://issues.apache.org/jira/browse/BEAM-12245
>             Project: Beam
>          Issue Type: Improvement
>          Components: dsl-dataframe, sdk-py-core
>            Reporter: Brian Hulette
>            Priority: P3
>              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.20.7#820007)

Reply via email to