Помогите, у меня есть два RDD, я хочу объединиться с одним RDD. Это мой код.Как слить два RDD на один RDD
val us1 = sc.parallelize(Array(("3L"), ("7L"),("5L"),("2L")))
val us2 = sc.parallelize(Array(("432L"), ("7123L"),("513L"),("1312L")))
Помогите, у меня есть два RDD, я хочу объединиться с одним RDD. Это мой код.Как слить два RDD на один RDD
val us1 = sc.parallelize(Array(("3L"), ("7L"),("5L"),("2L")))
val us2 = sc.parallelize(Array(("432L"), ("7123L"),("513L"),("1312L")))
Просто используйте союз:
val merged = us1.union(us2)
Документация here
Shotcut в Scala является:
val merged = us1 ++ us2
большое спасибо !! – Simon
@Simon [Пожалуйста, поддержите или принимайте ответы, а не оставляйте комментарии благодарности] (http://stackoverflow.com/help/someone-answers) –
Вам нужен RDD.union
Они не присоединиться на ключ. Союз действительно ничего не делает сам по себе, поэтому он накладные. Обратите внимание, что объединенный RDD будет иметь все разделы исходных RDD, поэтому вы можете захотеть объединиться после объединения.
val x = sc.parallelize(Seq((1, 3), (2, 4)))
val y = sc.parallelize(Seq((3, 5), (4, 7)))
val z = x.union(y)
z.collect
res0: Array[(Int, Int)] = Array((1,3), (2,4), (3,5), (4,7))
API
def++(other: RDD[T]): RDD[T]
Вернуться объединение этого РДУ и другой.
def union(other: RDD[T]): RDD[T]
Вернуться объединение этого РДУ и другой. Любые идентичные элементы появятся несколько раз (используйте для этого исключение .distinct()).
Почему вы хотите объединиться после этого? Если два входных RDD правильно разбиты на разделы, то объединение RDD тоже будет. – Tim
Просто для производительности и для обновления раздела .s не является мандатом, но может быть сделано. Он возвращает новое RDD, которое сводится к разделам numPartitions. –
Правильно, я понимаю, что делает слияние. Но если ваши разделы имеют правильный размер в обоих входных RDD, выполнение coalesce приведет к слишком большим разделам (особенно если вы используете параметр shuffle = false) – Tim
Каков ваш ожидаемый результат и что вы пробовали? – mtoto
3L 7L 5л 2L 432L 7123L 513L 1312L – Simon
я хочу этот RDD, означает две РДД сливаются в одну РДУ – Simon