spark多数据源hive和mysql联合使用

1、需要将mysql驱动放入spark的jars包下面

spark-2.6.0-bin-2.6.0-cdh5.16.2/jars/

2、准备数据
2.1、mysql库
在这里插入图片描述
2.2、准备hive数据
在这里插入图片描述
3、编写代码

public class MoreDatabasesSpark {
    public static void main(String[] args) {
        SparkSession session = SparkSession.builder().appName("SparkSessionApp")
                .master("spark://172.10.70.196:7077")
                .config("hive.metastore.uris", "thrift://172.10.70.196:9083")
                //直接连接hive
                .enableHiveSupport()
                .getOrCreate();
//
        Dataset<Row> peopleData = session.sql("select * from test_db.helloword");
        peopleData.registerTempTable("helloword");
        Dataset<Row> sexData = session.read().format("jdbc").option("url","jdbc:mysql://172.10.70.196:3306/bank_a?createDatabaseIfNotExist=true&useSSL=true&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8")
                .option("dbtable", "test_data")
                .option("user", "admin")
                .option("password", "admin")
                .option("driver","com.mysql.cj.jdbc.Driver")
                .load();
        sexData.registerTempTable("sex");
        session.sql("select a.id,a.name,b.memo from helloword a left join sex b on a.id = b.val").show();
        session.stop();
    }
}

4、将打包好的jar包上传服务器,并且运行

./spark-submit --class org.example.SparkSqlToHive /usr/local/src/test/SparkTest-1.0-SNAPSHOT.jar

5、运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunnyboy_4

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值