【问题标题】:Pyspark dataframe filter using occurrence based on columnPyspark 数据框过滤器使用基于列的出现
【发布时间】:2018-08-27 05:23:19
【问题描述】:

我有 pyspark 数据框,我想用列 A 和 B 过滤数据框。现在我只想获取 B 的值,其中 A 的出现大于某个数字 N。

A 列就像和 id 一样,可以有重复的值。现在我正在分组,过滤和使用效率不高的值列表,所以我正在寻找有效的解决方案。

例子

N = 5

输入Image

预期输出Image

您可以在此处看到仅选择了 A 列的 ID1 和 ID3,因为阈值 5 其余所有都被排除在外。

【问题讨论】:

标签: python apache-spark dataframe pyspark


【解决方案1】:

尝试以下方法:

df = ... # The dataframe
N = 5 # The value to test
df_b = df.filter(df['A'] >= N).select('B')

这将首先过滤仅包含 A 为 >= N 的行及其对应的“B”值的数据框。应用过滤器后,仅选择 B 列以获得最终结果。

【讨论】:

  • 我认为这不是我想要的。我认为你错过了事件的重点。请仔细阅读问题。如果这很简单,我就不会发布问题了:)
  • 那么请举一个输入和预期输出的例子。对“重复值”的正确理解是什么?它是像列表一样的嵌套结构吗?串联值?
  • repeated 表示重复值。
  • 那么您实际上想要的是键 (A) 值及其对应的 B 值,例如 ID1: [B1, B6, B7...] ?
  • 是的,您可以通过查看输入和输出找到更多信息
猜你喜欢
  • 2017-03-18
  • 2020-08-16
  • 2020-01-26
  • 1970-01-01
  • 2016-09-12
  • 1970-01-01
  • 2019-03-07
  • 2021-11-10
  • 1970-01-01
相关资源
最近更新 更多