AmazonS3—从SparkSQL的s3下载的字节数是HiveSQL的数倍

eaf3rand  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(467)

我在awss3上有一个配置单元表,其中包含144个csv格式的文件(每个文件20m),总大小为3g;
当我用sparksql执行sql时,下载字节的开销是10-15g(每次都不一样,由aws服务计算),比配置单元表的大小要大得多;但当我在配置单元客户端上通过配置单元执行相同的sql时,下载的字节数等于s3上的配置单元表大小;
sql很简单,比如“select count(1)from#table#”;
从spark ui stages标签来看,几乎有2k+任务,比spark rdd read execution大得多;所以一个文件被多个任务访问?
任何帮助都将不胜感激!

6rqinv9w

6rqinv9w1#

这是因为spark会将一个文件分割成多个分区(每个分区引用一个任务),即使文件大小小于block.size(64m或128m);

因此,为了减少Map任务数量,可以减少conf'mapreduce.job.maps'(默认值为2,适用于csv格式,但不适用于orc格式,在my mapred site.xml中更改为80);

相关问题