scala - 如何在scala中进行外部连接

标签 scala join apache-spark dataframe

我有两个数据框:df1 和 df2

df1

|--- id---|---value---|
|    1    |    23     |
|    2    |    23     |
|    3    |    23     |
|    2    |    25     |
|    5    |    25     |

df2
|-idValue-|---count---|
|    1    |    33     |
|    2    |    23     |
|    3    |    34     |
|    13   |    34     |
|    23   |    34     |

我怎么得到这个?
|--- id--------|---value---|---count---|
|    1         |    23     |    33     |
|    2         |    23     |    23     |
|    3         |    23     |    34     |
|    2         |    25     |    23     |
|    5         |    25     |    null   |

我在做 :
 val groupedData =  df1.join(df2, $"id" === $"idValue", "outer") 

但我没有看到 groupedData 中的最后一列。这是正确的做法吗?还是我做错了什么?

最佳答案

根据您的预期输出,您需要 LEFT OUTER JOIN。

val groupedData =  df1.join(df2, $"id" === $"idValue", "left_outer").
       select(df1("id"), df1("count"), df2("count")).
       take(10).foreach(println)

关于scala - 如何在scala中进行外部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39905701/

相关文章:

scala - 在 Mem (Chisel) 中初始化数据

scala - Scala 中的递归合并嵌套 Map

javascript - myArray.join(....).split(...) 打印

scala - 如何将 RDD[List[String]] 转换为 String 并将其拆分

json - 使用自定义表示在 Scala 中对 ADT 进行通用派生

scala - 使用 Spark 过滤带有条件的数据框

java - 如何使用 LEFT JOIN 创建 JPA NamedQuery

database - Postgres JOIN 与 unnest

hadoop - 在不同的机器配置中使用hadoop集群

apache-spark - 在独立模式下运行时,SparkUI 不显示选项卡(作业、阶段、存储、环境...)