Spark 2.2 dataframe [scala]

иногда вам нужно подключиться к БД с помощью других инструментов , которые принимают строку только как строку подключения. поэтому просто измените знак @ на% 40

-1
задан Ansip 17 January 2019 в 09:38
поделиться

1 ответ

Вы можете попробовать следующий код. Он подсчитывает количество отдельных OrderNo для всех статусов. Надеюсь, это поможет.

val rawDF = Seq(
  ("123", "Completed", "Pending", "Pending"),
  ("456", "Rejected", "Completed", "Completed"),
  ("789", "Pending", "In Progress", "Completed")
).toDF("OrderNo", "Status1", "Status2", "Status3")

val newDF = rawDF.withColumn("All_Status",  array($"Status1", $"Status2", $"Status3"))
    .withColumn("Status", explode($"All_Status"))
    .groupBy("Status").agg(size(collect_set($"OrderNo")).as("DistOrderCnt"))

Вот результаты. (Примечание: в прогрессе отображается только один раз в тестовых данных.)

+-----------+------------+ | Status|DistOrderCnt| +-----------+------------+ | Completed| 3| |In Progress| 1| | Pending| 2| | Rejected| 1| +-----------+------------+

0
ответ дан Apurba Pandey 17 January 2019 в 09:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: