Como especificar sugestões de distorção em comandos de associação de conjuntos de dados e DataFrames

Quando executa um join comando com DataFrame ou Dataset objetos, se descobrir que a consulta está presa no acabamento de um pequeno número de tarefas devido a distorçãode dados, pode especificar a sugestão de distorção com o hint("skew") método: df.hint("skew") . A otimização da união de skew é realizada no para o DataFrame qual especifica a skew sugestão.

Além da sugestão básica, pode especificar o hint método com as seguintes combinações de parâmetros: nome da coluna, lista de nomes de colunas e nome da coluna e valor distorcido.

  • DataFramee nome da coluna. A otimização da união de skew é realizada na coluna especificada do DataFrame .

    df.hint("skew", "col1")
    
  • DataFramee várias colunas. A otimização da união de skew é realizada para várias colunas no DataFrame .

    df.hint("skew", ["col1","col2"])
    
  • DataFrame, nome da coluna, e valor distorcido. A otimização de união de skew é realizada nos dados da coluna com o valor distorcido.

    df.hint("skew", "col1", "value")
    

Exemplo

Este exemplo mostra como especificar a sugestão de distorção para DataFrame vários objetos envolvidos numa join operação:

val joinResults = ds1.hint("skew").as("L").join(ds2.hint("skew").as("R"), $"L.col1" === $"R.col1")