【发布时间】:2019-11-27 03:32:09
【问题描述】:
我想比较两个 PySpark 数据帧。
我有具有数百列(Col1、Col2、...、Col800)的 Df1 和具有数百个相应行的 Df2。
Df2 描述了 Df1 中 800 列中每一列的限制值,如果值太低或太高,那么我想在 Final_Df 中实现结果,我在其中创建一个列 Problem 来检查是否任何列都超出限制。
我想过用 pivot 转置 Df2,但它需要一个聚合函数,所以我不确定它是否是一个相关的解决方案。
我也不知道如何加入两个 Df 进行比较,因为它们不共享任何公共列。
Df1:
| X | Y | Col1 | Col2 | Col3 |
+-----------+-----------+------+------+------+
| Value_X_1 | Value_Y_1 | 5000 | 250 | 500 |
+-----------+-----------+------+------+------+
| Value_X_2 | Value_Y_2 | 1000 | 30 | 300 |
+-----------+-----------+------+------+------+
| Value_X_3 | Value_Y_3 | 0 | 100 | 100 |
+-----------+-----------+------+------+------+
Df2:
+------+------+-----+
| name | max | min |
+------+------+-----+
| Col1 | 2500 | 0 |
+------+------+-----+
| Col2 | 120 | 0 |
+------+------+-----+
| Col3 | 400 | 0 |
+------+------+-----+
Final_Df(比较后):
+-----------+-----------+------+------+------+---------+
| X | Y | Col1 | Col2 | Col3 | Problem |
+-----------+-----------+------+------+------+---------+
| Value_X_1 | Value_Y_1 | 5000 | 250 | 500 | Yes |
+-----------+-----------+------+------+------+---------+
| Value_X_2 | Value_Y_2 | 1000 | 30 | 300 | No |
+-----------+-----------+------+------+------+---------+
| Value_X_3 | Value_Y_3 | 0 | 100 | 100 | No |
+-----------+-----------+------+------+------+---------+
【问题讨论】:
标签: python apache-spark pyspark