Scala Dataframe:如何使用两个Dataframe之间的条件向Dataframe添加列?

时间:2017-06-24 08:52:26

标签: scala apache-spark dataframe

我有两个Dataframe:

- UsersDF: (column_name:type) => [ (name,String) (age,Int) (Like,Int) ]
 - ClusterDF: => [(cluster,bigInt)  (names,String)]

一行clusterDF的名称列由与空格字符("\ t").分隔的用户字符串组成 用户在一个群集中。

我想将cluster列添加到userDF Dataframe,检查字段名称。我该怎么办?

示例:

clusterDF行:1, "A B C D"

userDF行:"A", 23, 150

在流程结束时:userDF行:"A", 23, 150, 1

1 个答案:

答案 0 :(得分:0)

这样做的方法是加入两个数据帧。为此,您需要两个步骤。第一种是将clusterDF转换为可用的形式:

val fixed = clusterDF.withColumn("name", explode(split($"names", " ")))

我们首先按空格分割名称以获取一组名称,然后将其展开以获取每个值的行。

现在加入两个:

usersDF.join(fixed, "name")