преобразовать строку в столбец в искре - PullRequest
0 голосов
/ 30 января 2020

У меня есть дата, как показано ниже: - Мне нужно отобразить столбец year_month в виде столбца. Как я должен использовать это, я новичок в искре.

scala> spark.sql("""select sum(actual_calls_count),year_month from ph_com_b_gbl_dice.dm_rep_customer_call group by year_month""")
res0: org.apache.spark.sql.DataFrame = [sum(actual_calls_count): bigint, year_month: string]

scala> res0.show
+-----------------------+----------+
|sum(actual_calls_count)|year_month|
+-----------------------+----------+
|                      1|   2019-10|
|                   3693|   2018-10|
|                      7|   2019-11|
|                     32|   2017-10|
|                     94|   2019-03|
|                  10527|   2018-06|
|                   4774|   2017-05|
|                   1279|   2017-11|
|                 331982|   2018-03|
|                 315767|   2018-02|
|                   7097|   2017-03|
|                      8|   2017-08|
|                      3|   2019-07|
|                   3136|   2017-06|
|                   6088|   2017-02|
|                   6344|   2017-04|
|                 223426|   2018-05|
|                   9819|   2018-08|
|                      1|   2017-07|
|                     68|   2019-05|
+-----------------------+----------+
only showing top 20 rows

Мой вывод должен быть таким: -

sum(actual_calls_count)|year_month1 | year_month2 | year_month3 and so on..

1 Ответ

1 голос
/ 30 января 2020
scala> df.groupBy(lit(1)).pivot(col("year_month")).agg(concat_ws("",collect_list(col("sum")))).drop("1").show(false)
+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
|2017-02|2017-03|2017-04|2017-05|2017-06|2017-07|2017-08|2017-10|2017-11|2018-02|2018-03|2018-05|2018-06|2018-08|2018-10|2019-03|2019-05|2019-07|2019-10|2019-11|
+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
|6088   |7097   |6344   |4774   |3136   |1      |8      |32     |1279   |315767 |331982 |223426 |10527  |9819   |3693   |94     |68     |3      |1      |7      |
+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
...