كيفية تحديد تلميحات الانحراف في مجموعة البيانات وأوامر الصلة المستندة إلى DataFrame

عند تنفيذ join أمر مع DataFrame أو Dataset كائنات، إذا وجدت أن الاستعلام عالق على إنهاء عدد قليل من المهام بسبب joinيمكنك تحديد تلميح الانحراف hint("skew") مع الطريقة: df.hint("skew") . يتم تنفيذ أمثلية الصلة الانحراف على الذي قمت بتحديد skew التلميح.

بالإضافة إلى التلميح الأساسي، يمكنك تحديد hint الأسلوب مع المجموعات التالية من المعلمات: اسم العمود، قائمة أسماء الأعمدة، واسم العمود وقيمة الانحراف.

  • DataFrame واسم العمود. يتم تنفيذ أمثلية الصلة الانحراف على العمود المحدد من DataFrame .

    df.hint("skew", "col1")
    
  • DataFrame وأعمدة متعددة. يتم تنفيذ أمثلية الصلة الانحراف لأعمدة متعددة في DataFrame .

    df.hint("skew", ["col1","col2"])
    
  • DataFrame، اسم العمود، وقيمة الانحراف. يتم تنفيذ تحسين الصلة الانحراف على البيانات في العمود مع قيمة الانحراف.

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

مثال

يوضح هذا المثال كيفية تحديد تلميح انحراف DataFrame لكائنات متعددة المتضمنة في join عملية:

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