insert overwrite语句在spark sql中的运行速度比在hive客户端中慢得多

bqjvbblv  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(777)

spark版本:2.0.0
配置单元版本:2.0.1
我发现在sparksql或sparkshell中运行的insert overwrite语句比在hive-client(我在apache-hive-2.0.1-bin/bin/hive中启动它)中花费的时间要长得多,其中spark大约需要10分钟,而hive-client只需要不到20秒。
这些是我采取的步骤。
测试sql是:

INSERT overwrite TABLE login4game partition(pt='mix_en',dt='2016-10-21')
SELECT DISTINCT account_name,
                role_id,
                server,
                '1476979200' AS recdate,
                'mix' AS platform,
                'mix' AS pid,
                'mix' AS dev
FROM tbllog_login
WHERE pt='mix_en'
  AND dt='2016-10-21' ;

tbllog\ U登录中有257128行数据 partition(pt='mix_en',dt='2016-10-21') 附言:
我敢肯定这一定是“插入覆盖”花费了大量的时间在Spark,可能是当做覆盖,它需要花费大量的时间在io或其他东西。
我还比较了insert overwrite语句和insert into语句的执行时间。
1insert overwrite语句和insert into spark语句:
插入覆盖语句大约需要10分钟
插入语句大约需要30秒
2在spark中插入语句并在配置单元客户端中插入语句:
spark大约需要30秒
hive客户端大约需要20秒
差别太小了,我们可以忽略不计

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题