【发布时间】:2018-03-05 01:58:20
【问题描述】:
我想通过 JDBC 从数据库中获取数百 GB 的数据,然后使用 Spark SQL 对其进行处理。目前我正在对该数据进行一些分区,并且处理是按批次的百万记录。问题是我还想对我的数据帧应用一些重复数据删除,我打算放弃分离批处理的想法,并尝试使用相应分区的一个数据帧来处理数百 GB。
主要问题是:在这种情况下 .distinct() 将如何工作? Spark SQL 是否会首先尝试将所有数据加载到 RAM 中,然后应用涉及许多 shuffle 和重新分区的重复数据删除?我是否必须确保集群有足够的 RAM 来包含原始数据,或者它是否能够帮助自己使用 HDD 存储(从而降低性能)?
或者我应该在没有 Spark 的情况下执行此操作 - 将数据移动到目标存储,然后应用不同的计数并检测重复并删除它们?
【问题讨论】:
标签: sql apache-spark duplicates distinct