Jak používat metodu hint s hodnotou skew v příkazech join u objektů Dataset a DataFrame

Pokud provedete join příkaz s DataFrame Dataset objekty nebo, pokud zjistíte, že je dotaz zablokovaný při dokončení malého počtu úkolů z důvodu zešikmení dat, můžete zadat pomocný parametr asymetrie pomocí hint("skew") metody: df.hint("skew") . Optimalizace spojení zkosení se provádí na, DataFrame pro kterou zadáte skew pomocný parametr.

Kromě základního pomocného parametru můžete zadat hint metodu s následujícími kombinacemi parametrů: název sloupce, seznam názvů sloupců a název sloupce a hodnota zkosení.

  • DataFrame a název sloupce. Optimalizace spojení zkosení se provádí v zadaném sloupci DataFrame .

    df.hint("skew", "col1")
    
  • DataFrame a více sloupců. Optimalizace spojení zkosení se provádí pro více sloupců v DataFrame .

    df.hint("skew", ["col1","col2"])
    
  • DataFrame, název sloupce a hodnota zkosení. Optimalizace spojení zkosení se provádí u dat ve sloupci s hodnotou asymetrie.

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

Příklad

Tento příklad ukazuje, jak zadat pomocný parametr asymetrie pro více DataFrame objektů zapojených do join operace:

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