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