Как обновить определенное значение ячейки в кадре данных искры? - PullRequest
0 голосов
/ 21 мая 2018

У меня есть два кадра данных.Мне нужно найти значение в кадре данных и обновить ячейку для конкретной строки.

Пример.

Df1 = (a, 10), (b, 20), (c, 30)
Df2 = (a, A1), (c, C1)

Ожидаемый результат:

(A, 10, A1), (b, 20, NaN), (c, 30, C1)

Пожалуйста, пришлите мне подробное решение, поскольку я только начал работать с искровым фреймом данных.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Вы можете использовать ниже код:

val d1 = Array(("a", "10"), ("b", "20"), ("c", "30"))
val rdd1= sc.parallelize(d1)
val df1 = rdd1.toDF("key","val")

val d2 = Array(("a", "A1"), ("c", "C1"))
val rdd2 = sc.parallelize(d2)
val df2 = rdd2.toDF("key","div")

val res = df1.join(df2,Seq("key"),"left_outer")
res.show()
0 голосов
/ 21 мая 2018

Вы можете достичь этого результата в два этапа.

  • первый, leftOuterJoin, который даст вам пару СДР с парами, такими как (a, (10, A1))
  • второй, спросто map, вы можете преобразовать пары в ожидаемые результаты
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...