apache-spark - Pyspark、groupBy 和嵌套列前缀
问题描述
在 pyspark 中,我尝试计算用户 ID 在 json 日志中的唯一出现次数(数据集是一个 json 文件)。
以下作品:
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];
任何想法?谢谢
解决方案
感谢@pault 的评论,这是答案:
df.select(
F.col("nested.user_id").alias("nested.user_id")
)\
.where(
...
)\
.groupBy(
F.col("`nested.user_id`")
)\
.count()
在 groupBy 子句中添加了反引号。
推荐阅读
- jersey-2.0 - HK2 泽西岛。如何从容器中获取 bean?
- angular - 将额外的 mat-tab 转换为 mat-tab-group 不起作用
- opencv - 检测复杂背景上的非锐利物体
- html - Prestashop 主题 HTML 代码定制
- php - 从php中的字符串中删除表情符号
- node.js - 在哪里保存 ReactJS 文件?
- r - prop.table 缺少数据
- javascript - 在表单提交之前获取表单的选择列表值
- javascript - 使用 javascript php 将隐藏 ID 值传递到另一个页面
- python - (Microbit) 功能完成后玩家位置重置