Используя озера pyspark/Delta на Databricks, у меня есть следующий сценарий:
sdf = spark.read.format("delta").table("...")
result = sdf.filter(...).groupBy(...).agg(...)
analysis_1 = result.groupBy(...).count() # transformation performed here
analysis_2 = result.groupBy(...).count() # transformation performed here
Насколько я понимаю Spark с озерами Delta, из-за цепного выполнения result
фактически вычисляется не при объявлении, а при его использовании.
Однако в этом примере оно используется несколько раз, поэтому наиболее затратное преобразование вычисляется несколько раз.
Можно ли принудительно выполнить выполнение в какой-то момент кода, например.
sdf = spark.read.format("delta").table("...")
result = sdf.filter(...).groupBy(...).agg(...)
result.force() # transformation performed here??
analysis_1 = result.groupBy(...).count() # quick smaller transformation??
analysis_2 = result.groupBy(...).count() # quick smaller transformation??