首页 > 解决方案 > 查找每小时的广告点击次数

问题描述

我对激发和学习它非常陌生。我遇到了一堵墙,我想在其中找到每小时的点击次数。给定这张表: adclicks_schema

到目前为止,我像这样转换了时间戳:

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

click_count_by_hour = adclicks.select("timestamp")

click_count_by_hours.show(24)

我被卡住了,接下来我该怎么办?我可以使用任何 spark sql 函数吗?

标签: apache-sparkpysparkapache-spark-sqlpyspark-sql

解决方案


您可以在内置函数中使用小时(或)日期格式hour从时间戳中提取。

  • groupByhourcount记录数。

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|
#+-------------+-----+

推荐阅读