SparkSql 用Scala语言操作Hive创建库,表,并且insert数据 |
您所在的位置:网站首页 › 怎么用代码编写表格 › SparkSql 用Scala语言操作Hive创建库,表,并且insert数据 |
Maven依赖配置文件准备
直接看这个帖子 SparkSql 用Scala代码查询Hive里面的指定的表 users.json [{"name":"zhangsan" ,"age":18} ,{"name":"lisi" ,"age":15}] 代码有两种方式, demo01 是原始的SQL demo02是DataFrame的方式,DataFrame更强大, 而直接写SQL更灵活,学习成本低.其实两种都能满足业务开发. 注意: 在开发工具中创建数据库默认是在本地仓库. 通过参数修改数据库仓库的地址: config(“spark.sql.warehouse.dir”, “hdfs://hadoop201:9000/user/hive/warehouse”) import org.apache.spark.sql.SparkSession object HiveWrite { /** * 创建方式1 */ def demo01(spark: SparkSession): Unit = { // 先创建换一个数据库 spark.sql("show databases").show spark.sql("create database ceshi").show // 如果数据库存在会抛异常 spark.sql("use ceshi").show spark.sql("create table user1(id int, name string)").show //如果表存在会抛异常 spark.sql("insert into user1 values(10, 'lisi')").show } /** * 创建方式2 * * @param spark */ def demo02(spark: SparkSession): Unit = { spark.sql("show databases").show spark.sql("create database ceshi2").show // 如果数据库存在会抛异常 //读取json里面的数据,转成DataFrame val df = spark.read.json("E:\\ZJJ_SparkSQL\\demo01\\src\\main\\resources\\users.json") spark.sql("use ceshi2") // // 直接把数据写入到hive中. 表可以存着也可以不存在 df.write.mode("append").saveAsTable("user2") df.write.insertInto("user2") // 基本等于 mode("append").saveAsTable("user2") } def main(args: Array[String]): Unit = { // 设置登录人,不然会出现没有权限问题 System.setProperty("HADOOP_USER_NAME", "root") val spark: SparkSession = SparkSession .builder() .master("local[*]") .appName("HiveWrite") .enableHiveSupport() // 指定Hive的数据仓库的位置,这个路径是hdfs上面的路径 .config("spark.sql.warehouse.dir", "hdfs://zjj101:9000/user/hive/warehouse") .getOrCreate() // demo01(spark) // 创建数据库和表插入数据方式1 demo02(spark) // 创建数据库和表插入数据方式1 spark.close() } } 码云地址添加链接描述 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |