Veri kümesi ve Veri Çerçevesi tabanlı birleştirme komutlarında veri dengesizliği ipuçlarını belirtme

veya Dataset nesneleriyle DataFrame bir join komut gerçekleştirdiğinizde, veri dengesizliği nedeniyle sorgunun az sayıda görevi tamamlarken takıldığını fark ederseniz, eğme ipucunu şu yöntemle hint("skew") belirtebilirsiniz: df.hint("skew"). Eğme birleştirme iyileştirmesi, ipucunu skew belirttiğiniz üzerinde DataFrame gerçekleştirilir.

Temel ipucuna ek olarak, yöntemini aşağıdaki parametre birleşimleriyle belirtebilirsiniz hint : sütun adı, sütun adları listesi ve sütun adı ve eğme değeri.

  • DataFrame ve sütun adı. Eğme birleştirme iyileştirmesi, öğesinin belirtilen sütununda DataFramegerçekleştirilir.

    df.hint("skew", "col1")
    
  • DataFrame ve birden çok sütun. Eğme birleştirme iyileştirmesi içindeki DataFramebirden çok sütun için gerçekleştirilir.

    df.hint("skew", ["col1","col2"])
    
  • DataFrame, sütun adı ve eğme değeri. Eğme birleştirme iyileştirmesi, eğme değeriyle sütundaki veriler üzerinde gerçekleştirilir.

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

Örnek

Bu örnek, bir join işlemde yer alan birden çok DataFrame nesne için eğme ipucunun nasıl belirtileceğini gösterir:

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