我想在不使用“explode”或“UDF”的情况下检查数组列的值是否等于“A”,因为它使我的 DataFrame 非常大并且过程非常缓慢。
所以我有这个
+-----+----+--------------------+---------+
| Name| Age| Subjects| Grades|
+-----+----+--------------------+---------+
|[Bob]|[16]|[Maths, Physics, ...|[A, B, C]|
+-----+----+--------------------+---------+
我想要这个
+-----+----+--------------------+---------+--------------------+
| Name| Age| Subjects| Grades| test |
+-----+----+--------------------+---------+--------------------+
|[Bob]|[16]|[Maths, Physics, ...|[A, B, C]|[true, false, false]|
+-----+----+--------------------+---------+--------------------+
有什么解决办法吗?
提前致谢。
答案 0 :(得分:2)
您可以为此使用 SQL TRANSFORM
import pyspark.sql.functions as F
df = df.withColumn("test", F.expr("TRANSFORM(Grades, x -> x = 'A')"))