【发布时间】:2020-06-15 13:04:20
【问题描述】:
我有一个如下所示的数据框:
+----------+--------------------------------+
| Index | flagArray |
+----------+--------------------------------+
| 1 | ['A','S','A','E','Z','S','S'] |
+----------+--------------------------------+
| 2 | ['A','Z','Z','E','Z','S','S'] |
+--------- +--------------------------------+
我想用对应的数值来表示数组元素。
A - 0
F - 1
S - 2
E - 3
Z - 4
所以我的输出数据框应该看起来像
+----------+--------------------------------+--------------------------------+
| Index | flagArray | finalArray |
+----------+--------------------------------+--------------------------------+
| 1 | ['A','S','A','E','Z','S','S'] | [0, 2, 0, 3, 4, 2, 2] |
+----------+--------------------------------+--------------------------------+
| 2 | ['A','Z','Z','E','Z','S','S'] | [0, 4, 4, 3, 4, 2, 2] |
+--------- +--------------------------------+--------------------------------+
我在 pyspark 中编写了一个 udf,我通过编写一些 if else 语句来实现它。有没有更好的处理方法。
【问题讨论】:
-
数组元素的顺序重要吗?
-
是的,订购很重要。否则会更简单
-
好吧,我也是这么想的。
标签: python-3.x apache-spark pyspark apache-spark-sql pyspark-dataframes