我需要在Spark Sql作业中执行多个连接。我有三个数据源,分别称它们为a,b,c。它们中的每一个都以明文CSV从S3中读取。
'a'和'b'是大表,分别有大约90米和50米的记录。表'c'很小,只有大约20k的记录。
我正在执行的操作是
(a left join b where <filter something from a> group by <a.1,a.2,a.3,a.4>)
left join c
最终操作有大约620k的记录,应该与'a'中的过滤和分组记录的数量相同(上面的'where'和'group by'子句大大减少了来自table的数据量' A')。
在我相当强大的集群上,此操作目前大约需要17分钟。我想知道是否可以通过优化来减少这种情况。请指教。
最好的问候