メインコンテンツまでスキップ

重複を削除

重複行を削除した新しいDataFrameを返します。オプションで、特定の列のみを考慮することも可能です。

構文

dropDuplicates(subset: Optional[List[str]] = None)

パラメーター

パラメーター

Type

説明

subset

列名のリスト(省略可能)

重複比較に使用する列のリスト(デフォルトは「すべての列」)。

戻り値

DataFrame重複のないDataFrame 。

注意

静的な バッチDataFrameの場合、重複する行を削除するだけです。 ストリーミングDataFrameの場合、トリガー全体のすべてのデータを中間状態として保持し、重複行を削除します。 withWatermark使用すると、重複データの許容遅延時間を制限でき、システムはそれに応じて状態を制限します。また、重複の可能性を避けるために、ウォーターマークより古いデータは削除されます。

Python
from pyspark.sql import Row
df = spark.createDataFrame([
Row(name='Alice', age=5, height=80),
Row(name='Alice', age=5, height=80),
Row(name='Alice', age=10, height=80)
])

df.dropDuplicates().show()
# +-----+---+------+
# | name|age|height|
# +-----+---+------+
# |Alice| 5| 80|
# |Alice| 10| 80|
# +-----+---+------+

df.dropDuplicates(['name', 'height']).show()
# +-----+---+------+
# | name|age|height|
# +-----+---+------+
# |Alice| 5| 80|
# +-----+---+------+