【发布时间】:2015-08-12 14:37:57
【问题描述】:
我正在尝试为 twitter json 文件编写查询,以通过查看 retweetCount 来提取最有影响力的人。我需要按用户、他们的时区和转推数按降序对我的输出进行分组。 当我运行下面的查询时,我不断收到异常:
org.apache.spark.sql.AnalysisExceptionorg.apache.spark.sql.AnalysisException: 无法解析给定输入列的“total_retweets” t.retweeted_screen_name, t.tz, total_retweets, tweet_count;
sqlContext.sql("""
SELECT
t.retweeted_screen_name,
t.tz,
sum(retweets) AS total_retweets,
count(*) AS tweet_count
FROM (SELECT
actor.displayName as retweeted_screen_name,
body,
actor.twitterTimeZone as tz,
max(retweetCount) as retweets
FROM tweetTable WHERE body <> ''
GROUP BY actor.displayName, actor.twitterTimeZone,
body) t
GROUP BY t.retweeted_screen_name, t.tz
ORDER BY total_retweets DESC
LIMIT 10 """).collect.foreach(println)
当我尝试简化此查询时,我遇到了如下错误:
total_retweets 列在选择列表中无效,因为它不是 包含在聚合函数或 GROUP BY 子句中。
非常感谢任何帮助。
【问题讨论】:
标签: apache-spark-sql