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

joinVeya nesneleriyle bir komut gerçekleştirdiğinizde DataFrame Dataset , sorgunun veri eğriliğinedeniyle az sayıda görevi bitirmek üzere takılmış olduğunu fark ederseniz, bu yöntemle eğme ipucunu belirtebilirsiniz hint("skew") : df.hint("skew") . Eğme JOIN iyileştirmesi , ipucunu belirttiğiniz ' nde gerçekleştirilir DataFrame skew .

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

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

    df.hint("skew", "col1")
    
  • DataFrame ve birden çok sütun. ' De birden çok sütun için eğme JOIN iyileştirmesi gerçekleştirilir DataFrame .

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

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

Örnek

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

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