我有一个 PySpark 数据帧,其中包含一个 ArrayType(StringType())
列。这个列中包含重复的字符串数组,我需要将它们移除。例如,一行条目可能看起来像 [milk, bread, milk, toast]
。假设我的数据框名为 df
,我的列名为 arraycol
。我需要像这样的东西:
df = df.withColumn("arraycol_without_dupes", F.remove_dupes_from_array("arraycol"))
我的直觉告诉我,这个问题一定有简单的解决方法,但是在stackoverflow上浏览了15分钟后,我没有找到比爆炸列、在整个数据框上去重然后再分组更好的方法。肯定有一种更简单的方法,只是我没想到对吧?
我正在使用Spark 2.4.0版本。
df = df.dropDuplicates(subset = ["arraycol"])
? - YOLO