假设我有一个这样的SQL查询:
<___T___A___B___>
在幕后,我猜是Spark将其转换为查询计划,即对表进行一些扫描,然后进行投影,以SELECT team, MAX(score) FROM mytable GROUP BY team;
为键将行分组到存储桶中,并在每个存储桶中进行汇总。
我希望能够在分组之后但在最大聚合之前截取中间输出。在使用此中间数据结构(可能是围绕RDD的一些包装器)进行了一些自定义处理之后,我想将其传递到下一个阶段(最大聚合)。这可能吗?
我这样做的一个潜在原因是出于安全原因-在最终聚合之前的这一阶段,我可能希望过滤或转换某些数据。我了解这可能会更改SQL查询的语义,但对于这个特定问题,我们将忽略它。