在idea上链接hive 并将mysql上的数据抽取到hive表中

最近刚看spark的数据处理

在数据抽取上分为增量和全量

全量数据抽取

把源系统所有数据复制到系统目标表同步方式就叫做—>全量

增量数据

增量抽取指的是只抽取前次抽取之后发生变化或者新增的数据

这是全量数据抽取

 def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local").setAppName("kks")
    val spark = SparkSession.builder().config(conf)
      .config("hive.metastore.uris", "thrift://192.168.132.145:9083")//指定hive的metastre服务地址
      .config("spark.sql.warehouse.dir", "hdfs://192.168.132.149:9000//usr/hive_remote/warehouse")//指定hive在hdfs上的warehouse仓库地址
      .enableHiveSupport()
      .getOrCreate
    val mydata = spark.read.format("jdbc")//用jdbc的方式链接mysql
      .option("url", "jdbc:mysql://127.0.0.1:3306/text")//指定本地mysql下的text数据库
      .option("driver", "com.mysql.jdbc.Driver")//driver指定mysql驱动形式为jdbc
      .option("user", "root")//mysql用户
      .option("password", "123")//mysql的密码
      .option("dbtable", "oo").load()//指定表格
    spark.sql("show databases").show()//查看hive下的数据库
    spark.sql("use ods")//转换成ods成
    spark.sql("select * from ods.new_user").show()//查看ods层下的new_user表格
    mydata.write.mode("overwrite").partitionBy("id").saveAsTable("new_user")
    //将mysql中的oo表中的数据写入hive mode (overwrite)为覆盖写入会将原表删除重建表写入数据 partitionBy(id)设置以id为分区
}

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>