在 Pyspark Dataframe 上添加列
Add columns on a Pyspark Dataframe
我有一个具有这种结构的 Pyspark 数据框:
+----+----+----+----+---+
|user| A/B| C| A/B| C |
+----+----+-------------+
| 1 | 0| 1| 1| 2|
| 2 | 0| 2| 4| 0|
+----+----+----+----+---+
我最初有两个数据框,但我使用用户作为键在外部连接它们,因此也可能有空值。我找不到对具有相同名称的列求和以获得这样的数据框的方法:
+----+----+----+
|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:我猜你可以写出合并的逻辑!所以我不是用勺子喂食!
我有一个具有这种结构的 Pyspark 数据框:
+----+----+----+----+---+
|user| A/B| C| A/B| C |
+----+----+-------------+
| 1 | 0| 1| 1| 2|
| 2 | 0| 2| 4| 0|
+----+----+----+----+---+
我最初有两个数据框,但我使用用户作为键在外部连接它们,因此也可能有空值。我找不到对具有相同名称的列求和以获得这样的数据框的方法:
+----+----+----+
|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:我猜你可以写出合并的逻辑!所以我不是用勺子喂食!