【发布时间】:2022-07-05 22:28:00
【问题描述】:
我在 spark 文件中有一个 RDD,它有两列 O 和 D。列的每个值之间都有一条边。例如,
| O | D |
|---|---|
| a | b |
| b | g |
| c | t |
| g | a |
这意味着 a 与 b 相关...我需要这样的 RDD 文件,但过滤所有未出现在列 O 中的节点。在这里,我们将在没有行 c -- t 的情况下执行相同操作,因为 t 不是出现在 O 列中。我尝试了一些似乎有效的方法。我确实列出了所有列 O 并过滤了所有未出现在此列表中的 D 值
list_O = df.select('O').rdd.flatMap(lambda x: x).collect()
df1 = df.filter(df.D.isin(list_O)).show()
当我想查看这个新 rdd 的头部时,它是错误的
df1.head(5)
error 我不明白为什么。
有什么想法吗?
【问题讨论】:
-
我建议不要在该用例中使用
collect,如果您正在处理大数据,当您在本地收集所有数据时,它可能会出现 OOM 错误。改用内部连接怎么样?
标签: python apache-spark sparql databricks