Java Spark join/groupby数据集需要很多时间

Java Spark join/groupby数据集需要很多时间,java,scala,hadoop,apache-spark,apache-spark-sql,Java,Scala,Hadoop,Apache Spark,Apache Spark Sql,我有两个数据集,包含35kk+行 我试图通过一些id连接或分组这些数据集。通常是一对一的 但是这个操作需要很多时间:25+h 过滤器只能正常工作:~20分钟 环境:环境管理报告-5.3.1 Hadoop发行版:Amazon 应用:Ganglia 3.7.2、Spark 2.1.0、齐柏林飞艇0.6.2 实例类型:m3.xlarge 代码分组依据: 我还在EMR日志中发现了这条消息: HashAggregateExec: spark.sql.codegen.aggregate.map.twolev

我有两个数据集,包含35kk+行

我试图通过一些id连接或分组这些数据集。通常是一对一的

但是这个操作需要很多时间:25+h

过滤器只能正常工作:~20分钟

环境:环境管理报告-5.3.1

Hadoop发行版:Amazon

应用:Ganglia 3.7.2、Spark 2.1.0、齐柏林飞艇0.6.2

实例类型:m3.xlarge

代码分组依据:

我还在EMR日志中发现了这条消息:

HashAggregateExec: spark.sql.codegen.aggregate.map.twolevel.enable is set to true, but current version of codegened fast hashmap does not support this aggregate.

可能存在数据倾斜的可能性。我们面临着这个问题。检查你的加入栏。如果联接列具有空值,则通常会发生这种情况

使用以下命令检查数据存储模式:

select joining_column, count(joining_col) from <tablename>
group by joining_col

这将使您了解联接列中的数据是否均匀分布

您的数据是否有偏差?两个数据集中是否都有空id?如果尝试dataset1.joindataset2,id会怎么样?
HashAggregateExec: spark.sql.codegen.aggregate.map.twolevel.enable is set to true, but current version of codegened fast hashmap does not support this aggregate.
select joining_column, count(joining_col) from <tablename>
group by joining_col