簡體   English   中英

在 Spark SQL 中對多個日期進行分組?

[英]Grouping multiple dates in Spark 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)

輸出:

https://i.stack.imgur.com/5EQMe.png

如您所見,相同的user_id列出了相同的日期,我將如何在 Spark SQL 中聚合它,使其本質上看起來像:

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

而不是將它放在多行上。

謝謝。

所以當我嘗試使用不同的函數時:

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)

這是輸出: https : //i.stack.imgur.com/ercES.png

你試過選擇不同嗎???

    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 以及從 group by 中刪除似乎您不需要選擇列表中的 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
""")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM