Spark和Scala,通过映射公共密钥,从另一个数据框添加带有值的新列

时间:2018-02-21 09:33:50

标签: scala apache-spark machine-learning spark-dataframe

我有2个数据帧 df1 =

dep-code    rank
    abc        1
    bcd        2

df2 =

some cols...  dep-code 
                  abc
                  bcd
                  abc

我想用df1.dep-code = df2.dep-code

将新列添加到df2作为排名

结果 -

some cols...   dep-code   rank
                  abc       1
                  bcd       2
                  abc       1

1 个答案:

答案 0 :(得分:0)

这是一个简单的连接:

df2.join(df1, "dep-code")

使用以下导入内容:

df1,包含连接和所需的列:

+--------+----+
|dep-code|rank|
+--------+----+
|     abc|   1|
|     bcd|   2|
+--------+----+

带有连接列的df2加上一个额外的(aColumn):

+----------+--------+
|   aColumn|dep-code|
+----------+--------+
|      some|     abc|
| someother|     bcd|
|yetAnother|     abc|
+----------+--------+

您将检索以下输出:

+--------+----------+----+
|dep-code|   aColumn|rank|
+--------+----------+----+
|     abc|      some|   1|
|     abc|yetAnother|   1|
|     bcd| someother|   2|
+--------+----------+----+