在Spark SQL中分组多个日期?

在Spark SQL中分组多个日期?,sql,sql-server,apache-spark,pyspark,pyspark-sql,Sql,Sql Server,Apache Spark,Pyspark,Pyspark Sql,我无法在代码中对日期进行分组 这是我目前的代码: df_tipReview = spark.sql(""" SELECT R.user_id, R.date, COUNT(R.review_id), T.date FROM reviews AS R INNER JOIN tips AS T ON R.user_id = T.user_id GROUP BY R.date, T.date, R.user_id """) df_tipReview.show(truncate=False) 输出:

我无法在代码中对日期进行分组

这是我目前的代码:

df_tipReview = spark.sql("""
SELECT R.user_id, R.date, COUNT(R.review_id), T.date
FROM reviews AS R INNER JOIN tips AS T
ON R.user_id = T.user_id
GROUP BY R.date, T.date, R.user_id
""")
df_tipReview.show(truncate=False)
输出:

如您所见,相同的
用户id
列出了相同的日期,我如何在Spark SQL中聚合该日期,使其基本上看起来像:

|-55DgUo52I3zW9RxkZ EAQ | 2015-11-11 | 3

而不是把它放在多行上

谢谢

因此,当我尝试使用如下所示的distinct函数时:

df_tipReview = spark.sql("""
SELECT DISTINCT R.user_id, R.date, COUNT(R.review_id), T.date
FROM reviews AS R INNER JOIN tips AS T
ON R.user_id = T.user_id
GROUP BY R.user_id, R.date, T.date
""")
df_tipReview.filter("R.user_id='-55DgUo52I3zW9RxkZ-EAQ'").show(truncate=False)
这是输出:

您是否尝试过选择不同的

    df_tipReview = spark.sql("""
    SELECT Distinct R.user_id, R.date, COUNT(R.review_id), T.date
    FROM reviews AS R INNER JOIN tips AS T
    ON R.user_id = T.user_id
    GROUP BY R.date, T.date, R.user_id
    """)
    df_tipReview.show(truncate=False)

请共享一些数据,以便更容易地帮助您从选择列表以及分组中删除T.date 从您的预期结果来看,似乎不需要选择列表中的t.date

df_tipReview = spark.sql("""
SELECT R.user_id, R.date, COUNT(R.review_id) as cnt
FROM reviews AS R INNER JOIN tips AS T
ON R.user_id = T.user_id
GROUP BY R.date, R.user_id
""")

您的输出只有3列。T.date发生了什么事?请包括示例数据。每行的日期不同,这就是为什么输出是这样的。删除T.dateT.date是与R.date无关的另一列。我没有把它包括在图片中,因为它会影响它,或者会影响它?t.date本质上是提示日期,R.date是审核日期。它们是两个,假设是两个不同的日期,描述没有多大帮助。显示示例输入和预期输出。我有,但我只尝试在列周围使用distinct。让我试着看看如果我区分了整个表,输出是什么。我刚刚试过你所做的,但是仍然有重复的。我会把这张照片添加到原来的帖子上,这样你就可以看到了。