Jes*_*sse 5 apache-spark apache-spark-sql pyspark
我有一个转换,其唯一目的是删除重复项。使用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)
下面是一对未删除的重复行的示例。我通过在这两行上运行 dropDuplicates() 确认没有奇怪的空白错误。该运行按预期工作,返回一行。
column_1 | column_2 | column_3 | column_4 | column_5| ..... column_200
bob jones **null** **null** 200.00 30
bob jones **null** **null** 200.00 30
Run Code Online (Sandbox Code Playgroud)
是否有什么事情会导致 PySpark 失败,但 Spark Java 成功(对我在这里含糊的行话表示歉意)?提前致谢。
| 归档时间: |
|
| 查看次数: |
1286 次 |
| 最近记录: |