4

spark version: 2.0.0

hive version: 2.0.1

I find insert overwrite statement running in spark-sql or spark-shell spends much more time than it does in hive-client (i start it in apache-hive-2.0.1-bin/bin/hive ), where spark costs about ten minutes but hive-client just costs less than 20 seconds.

These are the steps I took.

Test sql is :

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' ;

there are 257128 lines of data in tbllog_login with partition(pt='mix_en',dt='2016-10-21')

ps:

I'm sure it must be "insert overwrite" costing a lot of time in spark, may be when doing overwrite, it need to spend a lot of time in io or in something else.

I also compare the executing time between insert overwrite statement and insert into statement.

1. insert overwrite statement and insert into statement in spark:

insert overwrite statement costs about 10 minutes

insert into statement costs about 30 seconds

2. insert into statement in spark and insert into statement in hive-client:

spark costs about 30 seconds

hive-client costs about 20 seconds

the difference is so little that we can ignore

mrsrinivas
  • 34,112
  • 13
  • 125
  • 125
snodawn
  • 51
  • 1
  • 4

0 Answers0