在pyspark中,我尝试计算json日志(数据集是json文件)中用户ID的唯一出现次数。
以下作品:
df.select(
F.col("nested.user_id")
)\
.where(
...
)\
.groupBy(
F.col("user_id")
)\
.count()
注意“嵌套”。前缀不会出现在groupBy子句中。它似乎会被火花自动删除。我需要此前缀才能显示并尝试以下查询:
df.select(
F.col("nested.user_id").alias("nested.user_id")
)\
.where(
...
)\
.groupBy(
F.col("nested.user_id")
)\
.count()
别名似乎有效,但groupBy对此不了解:
org.apache.spark.sql.AnalysisException: cannot resolve '`nested.user_id`' given input columns: [nested.user_id];
有什么主意吗?谢谢
答案 0 :(得分:0)
感谢@pault的评论,这是答案:
df.select(
F.col("nested.user_id").alias("nested.user_id")
)\
.where(
...
)\
.groupBy(
F.col("`nested.user_id`")
)\
.count()
反引号已添加到groupBy子句中。