Поворот 2 совокупного значения на значение идентификатора в SQL - PullRequest
0 голосов
/ 06 ноября 2019

Мои данные выглядят так:

Employee_ID Created_Date Status Time_in_Seconds1 2019-11-02 1 501 2019-11-02 2 10
1 2019-11-01 1 1101 2019-11-01 2 802 2019-11-02 1 2802 2019-11-02 2 95
2 2019-11-01 1 3002 2019-11-01 2 130

Я хотел бы суммировать значения Time_in_Seconds по значениям Status для каждого драйвера за последние 7 дней:

Результаты должны выглядеть следующим образом:Employee_ID Status1 Status21 160 902 580 225

Я попытался объединить все запросы, но это не работает. Это должно быть какой-то поворот, но я не уверен, как.

1 Ответ

0 голосов
/ 06 ноября 2019

Вот кадр данных

df = spark.createDataFrame([('1','2019-11-02','1',50),('1','2019-11-02','2',10),('1','2019-11-01','1',110),('1','2019-11-01','2',80),('2','2019-11-02','1',280),('2','2019-11-02','2',95),('2','2019-11-01','1',3000),('2','2019-11-01','2',130)],['Employee_ID','Created_Date','status','Time_in_Seconds']) 

df.groupBy('Employee_ID').pivot('status').agg({'Time_in_Seconds':'sum'}).show()

enter image description here

...