** Я хочу предварительно разделить свои данные, вот пример кода, который я использую: **
sparkSession.conf.set("spark.sql.autoBroadcastJoinThreshold", -1)
val students = List (
(1,"vasili"),
(2,"ivan")
)
val addresses = List(
(1,"UKR"),
(1,"SG"),
(2,"DE")
)
val departments = List(
(1,"CS"),
(1,"MATH"),
(2,"HISTORY")
)
val studentsDF = students.toDF("student_id", "name") // I want to hash-partition is before hand,so that it dont re-partition for joining dept,address
val departmentsDF = departments.toDF("student_id", "department")
val addressesDF = addresses.toDF("student_id", "address")
val frame: DataFrame = studentsDF.join(departmentsDF, studentsDF.col("student_id") equalTo departmentsDF.col("student_id"))
val frame2: DataFrame = studentsDF.join(addressesDF, studentsDF.col("student_id") equalTo addressesDF.col("student_id"))
Я пытаюсь предварительно разделить DF, но не работает, как я ожидал Я пробовал
val studentsDF = students.toDF("student_id", "name").repartition(col("student_id"))
Дело в том, что я присоединяюсь к addressDF и DepartmentDF как с studentDF каждый раз, когда studentDF разбивается на хэш, я хочу предварительно разбить его с помощью col ("student_id")