在Pyspark Dataframe上添加列



我有一个这样结构的Pyspark Dataframe:

+----+----+----+----+---+
|user| A/B|   C| A/B| C | 
+----+----+-------------+
|  1 |   0|   1|   1|  2| 
|  2 |   0|   2|   4|  0| 
+----+----+----+----+---+

我最初有两个数据框,但是我使用user作为键将它们外部连接起来,所以也可以有空值。我找不到将具有相同名称的列相加的方法,以便获得这样的数据框架:

+----+----+----+
|user| A/B|   C| 
+----+----+----+
|  1 |   1|   3| 
|  2 |   4|   2| 
+----+----+----+

还请注意,可能有许多相等的列,因此不能直接选择每个列。在pandas中,可以使用"user"作为索引,然后添加两个数据框。我如何在Spark上做到这一点?

我有一个工作围绕这个

val dataFrameOneColumns=df1.columns.map(a=>if(a.equals("user")) a else a+"_1")
val updatedDF=df1.toDF(dataFrameOneColumns:_*)

现在进行连接,然后输出将包含不同名称的值

然后使要组合的列表的元组

val newlist=df1.columns.filter(_.equals("user").zip(dataFrameOneColumns.filter(_.equals("user"))

并且它们组合每个元组中列的值并获得所需的输出!

PS:我猜你可以写逻辑组合!所以我不是用勺子喂!

相关内容

  • 没有找到相关文章

最新更新