【发布时间】:2018-09-13 22:56:43
【问题描述】:
添加新列包含一个列对应的值在另一个列中满足指定条件的另一个值 例如, 原DF如下:
+-----+-----+-----+
|col1 |col2 |col3 |
+-----+-----+-----+
| A| 17| 1|
| A| 16| 2|
| A| 18| 2|
| A| 30| 3|
| B| 35| 1|
| B| 34| 2|
| B| 36| 2|
| C| 20| 1|
| C| 30| 1|
| C| 43| 1|
+-----+-----+-----+
我需要为每个 col1 的组重复 col2 中对应于 col3 中 1 的值。如果 col3 中 col1 中的任何组的值 =1 重复最小值 所需的 Df 如下:
+----+----+----+----------+
|col1|col2|col3|new_column|
+----+----+----+----------+
| A| 17| 1| 17|
| A| 16| 2| 17|
| A| 18| 2| 17|
| A| 30| 3| 17|
| B| 35| 1| 35|
| B| 34| 2| 35|
| B| 36| 2| 35|
| C| 20| 1| 20|
| C| 30| 1| 20|
| C| 43| 1| 20|
+----+----+----+----------+
【问题讨论】:
-
您的问题假定行是按顺序排列的。 SQL 表代表 无序 集。您需要一个指定排序的列。如果不是,则 SQL 不是此操作的合适工具。
-
col1和col 3中的值是有序的
标签: sql pyspark apache-spark-sql pyspark-sql