SparkSql 用Scala语言操作Hive创建库,表,并且insert数据

您所在的位置:网站首页 怎么用代码编写表格 SparkSql 用Scala语言操作Hive创建库,表,并且insert数据

SparkSql 用Scala语言操作Hive创建库,表,并且insert数据

2024-07-09 10:02| 来源: 网络整理| 查看: 265

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