对于pyspark 2.4+版,您可以使用
pyspark.sql.functions.array_distinct
:
from pyspark.sql.functions import array_distinct
df = df.withColumn("arraycol_without_dupes", array_distinct("arraycol"))
对于旧版本,您
可以
使用API函数
explode
+
groupBy
和
collect_set
但A
udf
这里的效率可能更高:
from pyspark.sql.functions import udf
remove_dupes_from_array = udf(lambda row: list(set(row)), ArrayType(StringType()))
df = df.withColumn("arraycol_without_dupes", remove_dupes_from_array("arraycol"))