【发布时间】:2018-05-15 16:46:17
【问题描述】:
我正在努力实现以下目标,
假设我有一个包含以下列的数据框
id | name | alias
-------------------
1 | abc | short
1 | abc | ailas-long-1
1 | abc | another-long-alias
2 | xyz | short_alias
2 | xyz | same_length
3 | def | alias_1
我想按 id 和 name 分组并选择较短的别名,
我期待的输出是
id | name | alias
-------------------
1 | abc | short
2 | xyz | short_alias
3 | def | alias_1
我可以使用 window 和 row_number 来实现这一点,有没有其他有效的方法可以获得相同的结果。一般来说,第三列过滤条件可以是任何东西,在这种情况下是字段的长度。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
查看您预期的数据框,似乎简单的过滤器就可以解决问题。
df.filter(df['alias'] == 'short-alias') -
不,这些是样本,可以有任何值。我将编辑问题以使其清楚
标签: apache-spark pyspark pyspark-sql