Как сделать преобразование возвращаемого типа DataFrame => DataFrame, которое даст результат 2 столбца как значение и column1_column2 как имя - PullRequest
0 голосов
/ 08 мая 2020
Input
+-------+-------+----+-------
| id    |    a  |  b |    c                   
+-------+-------+----+-------
|  1    |  1    |  0 |    1     
+-------+-------+----+-------

output
+-------+-------+----+-------+-------+-------+----+-------
| id    |    a  |  b |    c  |  a_b  | a_c  | b_c            
+-------+-------+----+-------+-------+-------+----+-------
|  1    |  1    |  0 |    1  |  0    |  1   | 0
+-------+-------+----+-------+-------+-------+----+-------

в основном у меня есть последовательность пар, которая содержит Seq ((a, b), (a, c), (b, c)), и их значения будут col (a) * col (b), col (a) * col (c) col (b) * col (c) для нового столбца Как будто я знаю, как добавить их в dataFrame, но не могу выполнить преобразование возвращаемого типа DataFrame = > DataFrame

1 Ответ

0 голосов
/ 08 мая 2020

Это ты что? Взгляните на страницу API . Вы спасете себя когда-нибудь :)

val df = Seq((1, 1, 0, 1))
  .toDF("id", "a", "b", "c")
  .withColumn("a_b", $"a" * $"b")
  .withColumn("a_c", $"a" * $"c")
  .withColumn("b_c", $"b" * $"c")

output ============
+---+---+---+---+---+---+---+
| id|  a|  b|  c|a_b|a_c|b_c|
+---+---+---+---+---+---+---+
|  1|  1|  0|  1|  0|  1|  0|
+---+---+---+---+---+---+---+
...