การทำความสะอาดข้อมูลด้วย PySpark
Mike Metzger
Data Engineering Consultant
voter_df = df.select(df['VOTER NAME']).distinct()
voter_df.explain()
== Physical Plan ==
*(2) HashAggregate(keys=[VOTER NAME#15], functions=[])
+- Exchange hashpartitioning(VOTER NAME#15, 200)
+- *(1) HashAggregate(keys=[VOTER NAME#15], functions=[])
+- *(1) FileScan csv [VOTER NAME#15] Batched: false, Format: CSV, Location:
InMemoryFileIndex[file:/DallasCouncilVotes.csv.gz],
PartitionFilters: [], PushedFilters: [],
ReadSchema: struct<VOTER NAME:string>
Shuffling คือการเคลื่อนย้ายข้อมูลไปยัง worker ต่าง ๆ เพื่อทำงานให้เสร็จสมบูรณ์
.repartition(num_partitions).coalesce(num_partitions) แทน.join().broadcast()Broadcasting:
.join() ได้อย่างมากใช้เมธอด .broadcast(<DataFrame>)
from pyspark.sql.functions import broadcast
combined_df = df_1.join(broadcast(df_2))
การทำความสะอาดข้อมูลด้วย PySpark