小编Mia*_*a21的帖子

PySpark-如何使用一列中的行值访问与行值同名的另一列

我有一个 PySpark df:

+---+---+---+---+---+---+---+---+
| id| a1| b1| c1| d1| e1| f1|ref|
+---+---+---+---+---+---+---+---+
|  0|  1| 23|  4|  8|  9|  5| b1|
|  1|  2| 43|  8| 10| 20| 43| e1|
|  2|  3| 15|  0|  1| 23|  7| b1|
|  3|  4|  2|  6| 11|  5|  8| d1|
|  4|  5|  6|  7|  2|  8|  1| f1|
+---+---+---+---+---+---+---+---+
Run Code Online (Sandbox Code Playgroud)

我最终想创建另一列“out”,其值基于“ref”列。例如,在第一行 ref 列中有 b1 作为值。在“out”列中,我希望看到“b1”列的值,即 23。这是预期的输出:

+---+---+---+---+---+---+---+---+---+
| id| a1| b1| c1| d1| e1| f1|ref|out|
+---+---+---+---+---+---+---+---+---+
|  0|  1| 23|  4| …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql pyspark pyspark-sql apache-spark-1.6

4
推荐指数
1
解决办法
4524
查看次数

PySpark:计算行最小值忽略零和空值

我想根据数据框中现有的列子集创建一个新列(v5)。

示例数据框:

+---+---+---+---+
| v1| v2| v3| v4|
+---+---+---+---+
|  2|  4|7.0|4.0|
| 99|  0|2.0|0.0|
|189|  0|2.4|0.0|
+---+---+---+---+
Run Code Online (Sandbox Code Playgroud)

提供示例数据框的另一个视图:

+---+---+---+---+
| v1| v3| v2| v4|
+---+---+---+---+
|  2|7.0|  4|4.0|
| 99|2.0|  0|0.0|
|189|2.4|  0|0.0|
+---+---+---+---+
Run Code Online (Sandbox Code Playgroud)

它的创建者:

+---+---+---+---+
| v1| v2| v3| v4|
+---+---+---+---+
|  2|  4|7.0|4.0|
| 99|  0|2.0|0.0|
|189|  0|2.4|0.0|
+---+---+---+---+
Run Code Online (Sandbox Code Playgroud)

最终,我想做的是创建另一个列 v5,它是与 v1 和 v2 的最小值相对应的值,忽略任一列中存在的零和空值。假设 v1 为键,v3 为值对。同样,v2 为键,v4 为值。例如,在第一行中:在 v1 和 v2 中,最小值属于 v1,即 2,因此 v5 列中的输出应为 7.0 同样,在第二行中:忽略 v1 和 v2 的零值和空值,输出应为成为2.0

原始数据帧有五列作为键,相应的五列作为值所需的输出:

+---+---+---+---+---+
| …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql pyspark apache-spark-1.6

1
推荐指数
1
解决办法
7136
查看次数