Найти количество кликов рекламы за каждый час - PullRequest
0 голосов
/ 13 апреля 2020

Я очень новичок в освоении и изучении этого. Я столкнулся со стеной, где я хочу найти количество кликов в час. Учитывая эту таблицу: adclicks_schema

До сих пор я конвертировал метку времени следующим образом:

timestamp_only = adclicks.selectExpr(["to_timestamp(timestamp) as timestamp"])

click_count_by_hour = adclicks.select("timestamp")

click_count_by_hours.show(24)

И я застрял, что мне делать дальше? Есть ли какие-нибудь функции sql, которые я могу использовать?

1 Ответ

2 голосов
/ 13 апреля 2020

Вы можете извлечь hour из отметки времени, используя час (или) date_format во встроенных функциях.

  • groupBy на hour и count количество записей.

Example:

#sample data
df.show()
#+-------------------+
#|          timestamp|
#+-------------------+
#|2019-10-01 12:22:34|
#|2019-10-01 13:22:34|
#+-------------------+

from pyspark.sql.functions import *

df.withColumn("hour",hour(col("timestamp"))).\
groupBy("hour").\
agg(count("*").alias("count")).\
show()
#+----+-----+
#|hour|count|
#+----+-----+
#|  12|    1|
#|  13|    1|
#+----+-----+

#using date_format function

df.withColumn("hour",date_format(col("timestamp").cast("timestamp"),"yyyy-MM-dd HH")).\
groupBy("hour").\
agg(count("*").alias("count")).\
show()
#+-------------+-----+
#|         hour|count|
#+-------------+-----+
#|2019-10-01 13|    1|
#|2019-10-01 12|    1|
#+-------------+-----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...