apache-spark - 在 Spark 中添加带有连接的列
问题描述
在 Spark 中,有没有办法通过连接向 DataFrame 添加一列,但以保证左侧完全不变的方式?
这是我到目前为止所看到的:
leftOuterJoin... 但是这有重复行的风险,因此必须非常小心以确保右侧没有重复的键。如果保证安全的唯一方法是在加入之前进行重复数据删除,则不完全健壮或高性能。
有一种数据结构似乎可以保证没有重复的键:PairRDD。这有一种在键值表中查找键的好方法:YYY.lookup("key")
. 因此,人们可能期望能够做到.withColumn("newcolumn", udf((key:String) => YYY.lookup(key)).apply(keyColumn))
这一点,但似乎 udfs 无法做到这一点,因为它们显然无法访问查找显然需要的 sqlContext。如果有一种使用方式,withColumn
我会非常高兴,因为它具有正确的语义。
提前谢谢了!
解决方案
推荐阅读
- fortran - Fortran 中的 FFTW 数组顺序
- javascript - 在javascript中将复杂代码组合为字符串
- mysql - SQL 数据复制
- sql - 如何将 Excel 中的数据插入 Spark SQL 中的临时表中
- python - 合并 2 个字典并将它们存储在 pandas 数据框中,其中一个字典具有可变长度列表元素
- python - 无法在 Python 中将 Matlab 时间戳转换为日期时间
- sql-server - 如何在名称中创建具有动态约束 UUID 的临时表
- android - 是否有适用于 Wear OS 应用程序的时间选择器小部件?
- html - 如何使用 CSS 将单词换到下一行?
- c# - 在特定单词之后以字符串格式提取部分 URL