Case Based Scennerio в Pyspark - PullRequest
       6

Case Based Scennerio в Pyspark

0 голосов
/ 17 января 2020

DataFrame в pyspark выглядит следующим образом.

model,DAYS

MarutiDesire,15
MarutiErtiga,30
Suzukicelerio,45
I10lxi,60
Verna,55

Выходные данные, которые я пытаюсь получить как

Выходные данные: я пытаюсь получить выходные данные, когда дни меньше 30 чем экономичный ,

между 30 и 60, чем в среднем , и когда больше 60, чем Низкая прибыль

enter image description here

Код, который я пробовал, но выдает неправильный вывод.

dataset1.selectExpr("*", "CASE WHEN DAYS <=30 THEN 'ECONOMICAL' WHEN DAYS>30 AND LESS THEN 60 THEN 'AVERAGE' ELSE 'LOWPROFIT' END REASON").show()

Пожалуйста, поделитесь своим предложением. Есть ли лучший способ сделать это в pyspark.

1 Ответ

0 голосов
/ 17 января 2020
>>> from pyspark.sql.functions import *
>>> df.show()
+-------------+----+
|        model|DAYS|
+-------------+----+
| MarutiDesire|  15|
| MarutiErtiga|  30|
|Suzukicelerio|  45|
|       I10lxi|  60|
|        Verna|  55|
+-------------+----+

>>> df.withColumn("REMARKS", when(col("DAYS") < 30, lit("ECONOMICAL")).when((col("DAYS") >= 30) & (col("DAYS") < 60), lit("AVERAGE")).otherwise(lit("LOWPROFIT"))).show()
+-------------+----+----------+
|        model|DAYS|   REMARKS|
+-------------+----+----------+
| MarutiDesire|  15|ECONOMICAL|
| MarutiErtiga|  30|   AVERAGE|
|Suzukicelerio|  45|   AVERAGE|
|       I10lxi|  60| LOWPROFIT|
|        Verna|  55|   AVERAGE|
+-------------+----+----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...