Sei que junções com DataFrames coparticionados não são consideradas transformações amplas. Aqui estão as definições de transformações amplas e estreitas do artigo original .
dependências estreitas, onde cada partição do RDD pai é usada por no máximo uma partição do RDD filho, dependências amplas, onde várias partições filho podem depender dela.
Mesmo que os DataFrames sejam coparticionados, isso não significa necessariamente que suas partições correspondentes estejam localizadas no mesmo nó. Por exemplo, a partição P1 de df1
e P1 de df2
podem residir em nós diferentes. Portanto, durante a junção, a transferência de dados (por exemplo, mover P1 de df1
para o nó de P1 de df2
) ainda é necessária. No entanto, isso não é considerado um embaralhamento.
Tenho duas perguntas?
- Então, o que exatamente é um embaralhamento? Entendo que nem todas as transferências de dados de rede são consideradas embaralhadas.
- Que tipos de transferências de dados são consideradas embaralhadas? São apenas aquelas envolvidas em transformações amplas?