我有一个转换,其唯一目的是删除重复项。使用PySpark 2.x时,生成的输出会删除一些重复项,但不是全部。使用Apache Spark Java 2.x时,结果输出符合预期,并且删除了所有重复项。
我目前正在 YARN 上运行 Spark。我的数据集大约有 1.25 亿行 x 200 列。预计某些列包含空值。对于我的用例,我确实有纯重复项(其原因超出了范围)。到目前为止,我已经尝试过:
我检查了物理计划,方法 1 和方法 4 都生成了相同的计划。它们大致如下:
+-HashAggregate(keys=[column_1, column_2, .... 198 more fields], functions=[], output=[column_1, column_2, ... 198 more fields]
+-Exchange hashpartitioning(column_1, column_2, ... 198 more fields)
+-HashAggregate(keys=[column_1, column_2, .... 198 more fields], functions=[], output=[column_1, column_2, ... 198 more fields]
+-FileScan parquet .... …Run Code Online (Sandbox Code Playgroud)