Spark读写Hive

Spark读写Hive

文章目录

    • Spark读写Hive
      • (一)配置本地域名映射
      • (二)创建Hive表
      • (三)IDEA中编写Spark代码读取Hive数据
      • (四)IDEA中编写Spark代码写入数据到Hive

(一)配置本地域名映射

1.查看集群配置

在Linux查看hosts文件

vi /etc/hosts

2.将Linux中查看到的域名配置到Windows本地的hosts文件中

C:\Windows\System32\drivers\etc\hosts

注意:此文件有权限限制,不能直接修改,修改的办法:搜索记事本,使用管理员身份打开记事本,然后从记事本打开hosts文件,然后再修改

(二)创建Hive表

1.要保证Hadoop集群是正常启动的

master和slave1节点上要能看到namenode守护进程

2.本地编辑一个t_student.txt文件

vi ~/t_student.txt

写入数据

1,zhangsan,male,18
2,lisi,female,20

保存并退出

3.上传文件到HDFS根目录

hdfs dfs -put ~/.t_student.txt /

4.进入hive

hive

5.创建数据库

--创建数据库
create database sparktest;--使用数据库
use spark test;--创建表
create table student(id int, name string, gender string, age int) row format delimited fields terminated by "," stored as textfile ;
--row format delimited fields terminated by "," 指定列分隔符为英文的逗号
--stored as textfile 存储为文本文件--加载数据
load data inpath "/t_student.txt" overwrite into table student;
--load data加载数据
--inpath 指定路径
--"/t_student.txt" 具体的HDFS的路径
--overwrite into 覆盖写入
--table 指定表
--student 具体的表名

当执行完load data操作后,hdfs根目录下的t_student.txt文件会被移动到hive的数据目录下

6.查看数据

select * from student;

(三)IDEA中编写Spark代码读取Hive数据

1.环境配置

将hive-site.xml(路径: H I V E H O M E / c o n f )、 c o r e − s i t e . x m l 、 h d f s − s i t e . x m l (路径: HIVE_HOME/conf)、core-site.xml、hdfs-site.xml(路径: HIVEHOME/conf)、coresite.xmlhdfssite.xml(路径:HADOOP_HOME/etc/hadoop)复制到IDEA项目的resource目录下

2.编写代码

import org.apache.spark.sql.SparkSession/*** 使用DataFrame读取Hive表*/
object spark_read_hive {def main(args: Array[String]): Unit = {//指定本地用户为rootSystem.setProperty("HADOOP_USER_NAME","root")//创建SparkSession,作用:连接Sparkval spark = SparkSession.builder().master("local[*]") //指定运行的方式哦.appName("spark_read_hive") //程序的名字.enableHiveSupport() //开启Hive支持.getOrCreate()//查询Hive表//sparktest.student 数据库名.表名val df = spark.sql("select * from student");df.show()}
}

(四)IDEA中编写Spark代码写入数据到Hive

import org.apache.spark.sql.{Row, SparkSession}
import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType}/*** 使用DataFrame写入数据到Hive*/
object spark_write_hive {def main(args: Array[String]): Unit = {//指定本地用户为rootSystem.setProperty("HADOOP_USER_NAME", "root")//创建SparkSession,作用:连接Sparkval spark = SparkSession.builder().master("local[*]") //指定运行的方式哦.appName("spark_write_hive") //程序的名字.enableHiveSupport() //开启Hive支持.getOrCreate()//创建DataFrame//1. 创建schemaval schema = StructType(List(StructField("id", IntegerType, true),StructField("name", StringType, true),StructField("gender", StringType, true),StructField("age", IntegerType, true)))//2. 创建rows//2.1 创建RDDval dataRDD = spark.sparkContext.parallelize(Array(Array(3, "张三", "男", 18),Array(4, "李四", "女", 20)))//2.2 创建rowsval rows = dataRDD.map(x => Row(x(0), x(1), x(2), x(3)))//3. 合并val df = spark.createDataFrame(rows,schema)//在控制台显示DataFrame的内容//df.show()//写入Hive//方法一:通过临时表使用SQL语句添加数据df.createOrReplaceTempView("tmpTable")spark.sql("insert into student select * from tmpTable")}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端优化 ----防抖 节流

防抖 如果一个事件在短时间内连续触发,则只去执行最后一次。 控制频率 实现方式:每次触发事件时设置一个延迟调用方法,并且取消之前的延时调用方法缺点:如果事件在规定的时间间隔内被不断的触发,则调用方法会被不断的…

【力扣】2.两数相加

2.两数相加 这是第二题,还行豁~。 题解: 首先就是对题目的理解。这里你要知道两链表中数字的排列都是逆序的,也就是说示例一中2-4-3他原本的数字应该是342。同理可得下面链表的意思,二者相加所得到的结果也是逆序的,…

企业微信群裂变:重塑新时代营销格局

随着数字化时代的来临,社交媒体已经逐渐成为人们获取和交流信息的主要平台。微信,作为中国最大的社交平台,正在上演着一场名为“微信群裂变”的营销革命。本文将深入剖析企业微信群裂变的内涵,揭示其背后的驱动力,以及…

【Java】MySQL存储 MD5 值应该用 VARCHAR 还是CHAR?

CHAR 非常适合存储 MD5 值。因为MD5 值是一个定长的值,对于固定长度的非常短的列,CHAR比VARCHAR的效率更高。 CHAR和VARCHAR的区别: 1)存储长度不同,CHAR 的长度是固定的,VARCHAR 的长度是可变的 假设,当我们定义 CHA…

基于Java8构建Docke镜像

基于Java8构建Docke镜像 搜索java8安装包 docker search java8 --no-trunc , --no-trunc展开描述信息 选择拉取 docker pull docker.io/mykro/java8-jre,为了减少磁盘占用,选择jre版本基础镜像 在宿主机创建文件夹iot,并把所需…

Reactor模型

目录 1.Reactor模型是什么2.Reactor 模型应用场景3.使用 Reactor 模型的软件4.Reactor 模型 与 Actor 模型 的关系 本文主要介绍Reactor模型基本概念以及应用场景。 1.Reactor模型是什么 Reactor模型是一种事件驱动的设计模式,用于处理服务请求,它是由…

第15节:Vue3 DOM 更新完成nextTick()

下面是一个示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用nextTick()&#xff1a; <template> <view> <button click"changeText">点击改变文本</button> <text>{{ message }}</text> </view> </templa…

python笔记(1)安装环境

1&#xff0c;官网下载自己电脑位数的安装包 https://www.python.org/downloads/windows/ install时勾选中add to path&#xff0c;把路径自动添加到环境变量 安装pycharm就不讲了 安装后选中自己的python安装包 file-> setting->project:yourprojectname ->pyt…

FastAPI之请求头

请求头 FastAPI是一个现代、快速&#xff08;高性能&#xff09;、异步的Python Web框架&#xff0c;用于构建RESTful APIs。它基于标准的Python类型提示&#xff0c;并且可以生成交互式的API文档。 在本教程中&#xff0c;我们将学习如何使用FastAPI处理请求头&#xff08;H…

【详解优先级队列(堆)】

目录 堆的概念 堆的性质 堆的存储方式 堆的创建 堆的向下调整 向下过程(以小堆为例) 向下过程(以大堆为例) 建堆的时间复杂度O(n) 堆的插入与删除 堆的插入 向上调整建堆的时间复杂度O(nlogn) 堆的删除 常见习题 常用接口介绍 PriorityQueue的特性 Pri…

成功的云转型之路需要考虑的基本因素

云计算如今已经变得无处不在&#xff0c;并显著影响着日常生活的各个方面。然而&#xff0c;重要的是要注意云计算技术是不断发展的。最近向远程工作的转变促使企业加快数字化转型&#xff0c;更多地采用云计算服务。 即使在新冠疫情消退之后&#xff0c;云计算技术的采用也获得…

在虚拟机的Windows操作系统中:通过Jar方式若依项目,以及在外部的访问!

&#x1f4da;&#x1f4da; &#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; ​​ &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Windows》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有…

Unity中Shader语义的理解

前言 以下内容主要是个人理解&#xff0c;如有错误&#xff0c;欢迎严厉批评指正。 一、语义的形式在Shader中是必要的吗&#xff1f; 不是必要的。 使用HLSL和CG语言来编写Shader需要语义&#xff0c;使用GLSL编写Shader不需要。 二、语义的意义&#xff1f; 语义是什么&…

IDEA之设置主题风格为eclipse风格

设置IDEA的主题风格为eclipse风格&#xff0c;步骤如下: 1.选择File->Settings 2.选择 Plugins 3.搜索 eclipse theme&#xff0c;注意是红框里的&#xff0c;点击 install 下载后就会自动设置这个主题 4.你也可以去修改主题&#xff0c;选择 Appearance&#xff0c;设置th…

软考 系统架构设计师系列知识点之大数据(3)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之大数据&#xff08;2&#xff09; 所属章节&#xff1a; 第11章. 未来信息综合技术 第6节. 云计算和大数据技术概述 大数据和云计算已成为IT领域的两种主流技术。“数据是重要资产”这一概念已成为大家的共识&#xf…

jdk+zookeeper+kafka 搭建kafka集群

环境资源包&#xff1a; jdk-8u341-linux-x64.tar.gz kafka_2.12-2.2.0.tgz zookeeper-3.4.14.tar.gz 一、安装jdk 因为kafka需要Java环境&#xff0c;所以优先配置jdk环境&#xff0c;若已经配置了java环境&#xff0c;此步骤可以忽略 [rootVM-120-2-centos ~]# tar -xvf j…

对比SPI、UART、I2C通信的区别与应用

SPI、UART、I2C通信是常用的数字通信协议&#xff0c;它们在不同的场景下有不同的应用。下面&#xff0c;我将分别介绍它们的特点、区别与应用。 SPI通信 SPI通信是一种串行同步通信协议&#xff0c;它的全称为“Serial Peripheral Interface”。SPI通信是一种单主多从的通信方…

Android字符串占位符整理

占位符描述示例%s字符串类型"Hello, %s!" → "Hello, Alice!"%d整型&#xff08;十进制&#xff09;"You have %d messages." → "You have 5 messages."%f浮点型&#xff08;十进制&#xff09;"Temperature: %f degrees."…

kubernetes 设置 Kubernetes master 可调度 pod

kubernetes 设置节点可调度 kubectl taint node node01 node-role.kubernetes.io/master-kubernetes 设置节点不可调度 kubectl taint node node01 node-role.kubernetes.io/master"":NoSchedule

【FPGA/verilog -入门学习6】verilog频率计数器

需求 在使能信号控制下&#xff0c;计算输入脉冲的每两个上升沿之间的时钟周期数并输出&#xff0c;即输出脉冲频率的计数值 输入信号 周期性脉冲信号&#xff1a;需要做检测的脉冲频率信号 使能信号&#xff1a;高电平进行频率计数&#xff0c;低电平清零计数器 输出信号 计数…