簡體   English   中英

Spark join / groupby數據集需要很多時間

[英]Spark join/groupby datasets take a lot time

我有2行35kk +行的數據集(表)。

我嘗試通過一些ID 加入 (或分組 )該數據集。 (通常是一對一的)

但是此操作需要很多時間: 25+ h

過濾器只能正常工作: 〜20分鍾

環境 :emr-5.3.1

Hadoop發行版 :Amazon

應用程序 :Ganglia 3.7.2,Spark 2.1.0,Zeppelin 0.6.2

實例類型: m3.xlarge

代碼( groupBy ):

Dataset<Row> dataset = ...
...
.groupBy("id")
.agg(functions.min("date"))
.withColumnRenamed("min(date)", "minDate")

代碼( join ):

...
.join(dataset2, dataset.col("id").equalTo(dataset2.col("id")))

我也在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.

數據可能會歪斜。 我們面對這個。 檢查您的加入專欄。 大多數情況是在您的聯接列為NULL時發生的

使用以下命令檢查數據存儲模式:

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

這將使您了解聯接列中的數據是否均勻分布

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM