sparkSql动态插入hive分区表

本文介绍了如何使用SparkSQL动态插入Hive分区表,包括创建Hive分区表的步骤,设置Sparksession,从Oracle读取数据,以及动态分区的配置。还探讨了在HDFS上对数据进行重分布的场景,如使用coalesce和repartition方法,并讨论了它们在不同分区数量情况下的适用性。最后,展示了插入后的Hive分区表在HDFS上的结构。
摘要由CSDN通过智能技术生成

前提条件:hive中创建分区表,并指定分区键
create table test(
id stirng
)partitioned by (name string)
stored as orc;

创建sparksession,不需要认证的话去掉config中内容

        SparkSession ss =  SparkSession.builder()
                .appName("test ")
                .master("local[2]"
                .enableHiveSupport() 
                .config("spark.sql.authorization.enabled", true)  
                .config("hive.security.authorization.enabled", true)
                .getOrCreate();

读取oracle中数据

 String sql = "(select xxx.*, 'a' as name from xxx where time >= trunc(sysdate)  ) a";
 Dataset<Row> table = ss.read()
            .format("jdbc")
            .option("driver", "oracle.jdbc.OracleDriver")
            .option("url", "jdbc:oracle:thin:@1.1.1.1:1521:orcl")
            .option("user", &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值