Является ли Dataset.JoinWith лучшим способом объединения двух наборов данных в Spark?

У меня есть два больших набора данных,

val dataA : Dataset[TypeA] и val dataB: Dataset[TypeB], где TypeA и TypeB расширяют Serializable.

Я хочу объединить два набора данных в отдельные столбцы, поэтому где TypeA.ColumnA == TypeB.ColumnB. Spark предлагает функцию JoinWith в наборе данных, который, я думаю, сделает это правильно, но функция недокументирована и помечена как "экспериментальная" .

Другой подход, который я рассматривал, заключается в использовании PairRDD вместо наборов данных и объединении их с помощью общего ключа (как говорится в этом сообщении stackoverlow здесь: как соединить два набора данных по ключу в scala spark).

Есть ли какой-то особенно лучший подход к объединению двух наборов данных или лучший способ использовать JoinWith или PairRDD?


person sparkonhdfs    schedule 16.04.2018    source источник
comment
Взгляните на этот вопрос: stackoverflow.com/questions/36462674/spark -dataset-api-join   -  person Nanda    schedule 16.04.2018
comment
Это не отвечает на вопрос, который я задал, хотя.   -  person sparkonhdfs    schedule 16.04.2018
comment
Это зависит от того, какой тип результата вы хотите получить, JoinWith возвращает Dataset[(TypeA, TypeB)], а обычный join будет возвращать Dataset[Row] (он же DataFrame) со столбцами с обеих сторон соединения в одной плоской структуре, такой как обычное соединение sql.   -  person puhlen    schedule 16.04.2018