Как сделать сумму столбцов и сделать ее доступной как столбец в Spark SQL - PullRequest
0 голосов
/ 15 января 2019

У меня есть следующий сценарий на моем наборе данных. Мне нужно суммировать значения некоторых столбцов без вмешательства в другие столбцы. Например,

Вот мой набор данных

 data_set,vol,channel
 Dak,10,ABC
 Fak,20,CNN
 Mok,10,BBC

мой ожидаемый результат -

 data_set,vol,channel,sum(vol)
 Dak,10,ABC,40
 Fak,20,CNN,40
 Mok,10,BBC,40

Есть ли способ достичь этого без объединения ... Мне нужен оптимизированный результат

1 Ответ

0 голосов
/ 15 января 2019

Вы можете сделать это следующим образом:

import org.apache.spark.sql.functions.lit
import spark.implicits._
val df = Seq(("Dak",10," ABC"),
      ("Fak",20,"CNN"),
      ("Mok",10,"BBC")).toDF("data_set","vol","channel")

    val sum_df = df.withColumn("vol_sum", lit(df.groupBy().sum("vol").collect()(0).getLong(0)))

sum_df.show()
+--------+---+-------+-------+
|data_set|vol|channel|vol_sum|
+--------+---+-------+-------+
|     Dak| 10|    ABC|     40|
|     Fak| 20|    CNN|     40|
|     Mok| 10|    BBC|     40|
+--------+---+-------+-------+

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...