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()) |