我试图比较两个非常大的内存块,每个都有大约10 PB的数据在Spark中。即使在增加内存配置后,执行也会抛出内存问题。有人能提出更好的替代方案来解决这个问题吗?
我使用的方法:
1.为每个嵌套框生成row_hashes
- diff = df.select('row_hash')-df1.select('row_hash')
- diff.join(df,df.columns.toSeq,“inner”)
我试图比较两个非常大的内存块,每个都有大约10 PB的数据在Spark中。即使在增加内存配置后,执行也会抛出内存问题。有人能提出更好的替代方案来解决这个问题吗?
我使用的方法:
1.为每个嵌套框生成row_hashes
1条答案
按热度按时间qzwqbdag1#
您可以使用Spark的LSH实现将两个嵌套框散列到具有非常严格的相似性度量的较低维度。
关于如何做到这一点的一些基本代码:
这种方法肯定比直接比较要好。但是,你可能会发现,对于你所说的那种规模,你肯定也需要使用配置设置。