1. sparksql动态分区直接写入hive表速度慢
1 动态写入速度慢的sql
set hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite table ssjt_test partition(dt) select a,dt from ssjt.test2 where dt>='20200801';
2. 文件方式写入后, alter方式添加分区
1) 过滤出要删除的目录;
2) 删除要重新覆盖的目录;
3) 文件方式写入(append)
import org.apache.spark.sql._
val out_path = "s3://transsion-bigdata-warehouse/test/shy/bak4"
df.write.mode( "append" ).option( "compression", "snappy" ).partitionBy( "dt" ).parquet( out_path )
4) 添加分区, 如果以前添加过可以省略;
2 新的解决思路参考
-
-
-