View difference between Paste ID: GusDNKy1 and UpELSvvS
SHOW: | | - or go back to the newest paste.
1-
--Найдите все даты, на которые пришлось более 200 заказов такси за любой период в 30 минут в этот день. Напечатайте на экране количество таких дней, сохранив результат в переменную result.
1+
--Сгруппируйте записи по месяцам. По каждому месяцу рассчитайте среднее количество заказов. 
2
Напечатайте на экране таблицу с месяцами и средним количеством заказов по убыванию.
3
4
from pyspark.sql import SparkSession
5
6
APP_NAME = "DataFrames"
7
SPARK_URL = "local[*]"
8
9
spark = SparkSession.builder.appName(APP_NAME) \
10
        .config('spark.ui.showConsoleProgress', 'false') \
11
        .getOrCreate()
12
13
taxi = spark.read.load('/datasets/pickups_terminal_5.csv', 
14
                       format='csv', header='true', inferSchema='true')
15
16
taxi = taxi.fillna(0)
17
18
taxi.registerTempTable("taxi")
19-
result = spark.sql("SELECT count(distinct(date)) FROM taxi WHERE pickups > 200")
19+
20-
print(result.show())
20+
print(spark.sql('SELECT EXTRACT(month FROM date), AVG(pickups) FROM taxi \
21
                GROUP BY EXTRACT(month FROM date) ORDER BY AVG(pickups) DESC').show())