问题描述
在使用Spark SQL 执行
sparkseccion.sql("insert overwrite table xxxx partition(date_time) select * from zzzz")
的时候,非常慢,大约需要3个小时跑完1.4m的数据。而如果将其保存在本地大约2分钟跑完。查询Hive的数据基本上是秒查。
问题出现的环境背景及自己尝试过哪些方法
版本信息:
- Spark 2.1.0
- Hive 1.2.0
- scala 2.11
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
val ss = SparkSession.builder().appName("test spark sql").config(conf).enableHiveSupport().getOrCreate()
// 将zzzz表的数据插入到xxxx表中
ss.sql("insert overwrite table xxxx partition(date_time) select * from zzzz")
你期待的结果是什么?实际看到的错误信息又是什么?
5分钟内将其执行完毕,并且xxxx
的数据写入成功。
目前可以写入成功,但是却需要3个小时的时间。
你可以把数据保存成 parquet 或者 orc 格式,作为 hive 的外部表加载,这样很快。