我有Spark作业(在Azure HDInsight上),它运行SQL查询(标准groupby)并将结果保存到Parquet& csv格式。
这项工作耗时很长。当我检查Spark UI时,我发现有两个任务被卡住了。
我认为这是因为数据偏差。但是,如果我检查这些执行者:
它们具有相似大小的输入数据,随机读写。所以它似乎不是数据偏差问题。还有什么其他原因导致某些任务需要很长时间?
只是想了解我正在运行的内容,示例查询:
SELECT year_month, id, feature,
min(prev_ts) AS timedelta_min,
max(prev_ts) AS timedelta_max,
stddev_pop(prev_ts) AS timedelta_sd,
AVG(prev_ts) AS timedelta_mean,
percentile_approx(prev_ts,0.5) AS timedelta_median,
percentile_approx(prev_ts,0.25) AS timedelta_1st_quartile,
percentile_approx(prev_ts,0.75) AS timedelta_3rd_quartile
FROM table_a
GROUP BY id, feature, year_month
此处prev_ts
是在时间戳列上使用LAG
创建的列。