我正在尝试编写一个 ETL 过程,在联合之前合并两个数据集,我向每个数据集添加一列,较新的数据集获取 2,较旧的数据集获取 1,然后如果行具有重复的主键,我会删除具有1 在旧/新列中。我尝试以多种方式编写此内容,最近通过执行以下操作:
orderBy(keys, desc(old/new)).dropDuplicates(keys)
Run Code Online (Sandbox Code Playgroud)
但在大型数据集上,我总是会出现大幅减速,并显示一条消息:
16/09/21 20:31:45 INFO UnsafeExternalSorter: Thread 84 spilling sort data of 3.0 GB to disk (0 time so far)
16/09/21 20:32:00 INFO UnsafeExternalSorter: Thread 84 spilling sort data of 3.0 GB to disk (1 time so far)
16/09/21 20:32:16 INFO UnsafeExternalSorter: Thread 84 spilling sort data of 3.0 GB to disk (2 times so far)
16/09/21 20:32:31 INFO UnsafeExternalSorter: Thread 84 spilling sort data of 3.0 GB to disk (3 times so …Run Code Online (Sandbox Code Playgroud)