擅长:python、mysql、java
<p>您可以首先创建包含年-月组合的列,然后使用该列进行分组。一个有效的例子是:</p>
<pre><code>import pyspark.sql.functions as F
df = sc.parallelize([
('2018-06-02T00:00:00.000Z','tim', 'page 1' ),
('2018-07-20T00:00:00.000Z','tim', 'page 1' ),
('2018-07-20T00:00:00.000Z','john', 'page 2' ),
('2018-07-20T00:00:00.000Z','john', 'page 2' ),
('2018-08-20T00:00:00.000Z','john', 'page 2' )
]).toDF(("datetime","user","page" ))
df = df.withColumn('yearmonth',F.concat(F.year('datetime'),F.lit('-'),F.month('datetime')))
df_agg = df.groupBy('yearmonth','page').count()
df_agg.show()
</code></pre>
<p>输出:</p>
<pre><code>+ -+ + -+
|yearmonth| page|count|
+ -+ + -+
| 2018-7|page 2| 2|
| 2018-6|page 1| 1|
| 2018-7|page 1| 1|
| 2018-8|page 2| 1|
+ -+ + -+
</code></pre>
<p>希望这有帮助!你知道吗</p>