首页 > 解决方案 > 在 Spark 中添加带有连接的列

问题描述

在 Spark 中,有没有办法通过连接向 DataFrame 添加一列,但以保证左侧完全不变的方式?

这是我到目前为止所看到的:

leftOuterJoin... 但是这有重复行的风险,因此必须非常小心以确保右侧没有重复的键。如果保证安全的唯一方法是在加入之前进行重复数据删除,则不完全健壮或高性能。

有一种数据结构似乎可以保证没有重复的键:PairRDD。这有一种在键值表中查找键的好方法:YYY.lookup("key"). 因此,人们可能期望能够做到.withColumn("newcolumn", udf((key:String) => YYY.lookup(key)).apply(keyColumn))这一点,但似乎 udfs 无法做到这一点,因为它们显然无法访问查找显然需要的 sqlContext。如果有一种使用方式,withColumn我会非常高兴,因为它具有正确的语义。

提前谢谢了!

标签: apache-spark

解决方案


推荐阅读