Doing this with Spark and Python
First, get the number of visits for each month by counting unique visit id.
month_visits = (
hit_data
.select(
F.col('date_time').substr(1,7).alias('month'),
F.concat_ws("_", "post_visid_high", "post_visid_low", "visit_num", "visit_start_time_gmt").alias('vid')
...