我有一个原始的Spark数据框DF
。让我们假设一个简单的场景,在该场景中,我想以几种方式对其进行预处理和转换,然后最终绘制两个图。
我的伪代码如下:
DF = spark.read.csv('foo.csv')
DF = preprocess(DF)
result_1 = some_aggregations(DF).toPandas()
result_2 = some_different_aggregations(DF).toPandas()
现在,如果我理解正确,例如从the accepted answer here,然后:
preprocess(DF)
实际上不是 行2。preprocess(DF)
运行两次 -一次运行result_1
,一次运行result_2
。 此缺点(冗余/多次计算)是否是Spark方式公认的缺点?还是我的数据处理效率低下?