Hive高级语法

-- 通过 hive 加载数据
-- 创建数据表
USE myhivebook;

CREATE TABLE IF NOT EXISTS student
(
    id int,
    name string
) comment '学生表'
row FORMAT delimited
fields terminated BY ',';

desc formatted student;

-- 创建数据
vi /root/data/student.dat
1001,tom
1002,jack
1003,rose

-- 加载数据
-- 复制本地文件上传到hdfs中
LOAD DATA LOCAL INPATH '/root/data/student.dat' OVERWRITE INTO TABLE student;
-- 剪切hdfs文件到其他hdfs目录
dfs -mkdir -p /hadoop/mydata;
dfs -put /root/data/student.dat /hadoop/mydata;
dfs -ls /hadoop/mydata;
LOAD data inpath '/hadoop/mydata/student.dat' overwrite INTO TABLE student;
-- 追加本地文件到表中
LOAD data local inpath '/root/data/student.dat' INTO TABLE student;
-- 追加hdfs文件到表中
TRUNCATE TABLE student;
dfs -put /root/data/student.dat /hadoop/mydata;
LOAD data inpath '/hadoop/mydata/student.dat' INTO TABLE student;

-- 查询数据
SELECT * FROM student;

-- 装载csv数据
-- 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号)
-- 获取数据格式
id,name,age,mark
1,tom,22,90
2,jack,23,95
3,rose,21,99
-- 根据以上数据建表
CREATE TABLE IF NOT EXISTS csv_student
(
    id int,
    name string,
    age int,
    mark double
)
row FORMAT
serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
tblproperties('skip.header.line.count'='1')
;
-- 查询表结构
desc formatted csv_student;
-- 上传数据到linux /root/data
cat student.csv
-- 加载数据
LOAD data local inpath '/root/data/student.csv' overwrite INTO TABLE csv_student;
-- 查询业务数据
select * from csv_student;

-- 示例2:
-- 数据
id,name,age,mark
1    'tom'    22    90
2    'jack'    23    95
3    'rose'    21    99
-- 建表
DROP TABLE IF EXISTS csv_student2;
CREATE TABLE IF NOT EXISTS csv_student2
(
    id int,
    name string,
    age int,
    mark double
)
row FORMAT
serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH serdeproperties(
  'separatorChar'='\t',
  'quoteChar'="'"
)
tblproperties('skip.header.line.count'='1')
;
-- 加载数据
LOAD data local inpath '/root/data/student2.csv' overwrite INTO TABLE csv_student2;
-- 查询业务数据
select * from csv_student2;

-- 作业:数据通过分号分隔,字符用双引号界定


-- JSON,JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。
{}表示对象
[]表示集合
id,name,age,mark
1,tom,22,90
{
  "id": 1,
  "name": "tom",
  "age": 22,
  "mark": 90
}
[
  {
    "id": 1,
    "name": "tom",
    "age": 22,
    "mark": 90
  },
  {
    "id": 1,
    "name": "tom",
    "age": 22,
    "mark": 90
  }
]
-- 获取数据样例
{"name":"Michael"}
{"name":"Andy","Age":30}
{"name":"Justin","Age":19}
-- 下载第三方jar包专用于解析json格式数据,上传到linux中:/root/data
-- 加载jar包
add jar /root/data/json-serde-1.3.8-jar-with-dependencies.jar;
list jar;
delete jar /root/data/json-serde-1.3.8-jar-with-dependencies.jar;
-- 建表
CREATE TABLE IF NOT EXISTS json_users
(
    name string,
    age int
)
row FORMAT
serde "org.openx.data.jsonserde.JsonSerDe";
-- 把数据上传到 /root/data/ 加载数据
LOAD data local inpath '/root/data/users.json' overwrite INTO TABLE json_users;
-- 查询数据
SELECT * FROM json_users;

-- 分区
-- 静态分区和动态分区
-- 创建静态分区表
CREATE TABLE IF NOT EXISTS student_static_partition
(
    id int,
    name string,
    age int
)
partitioned by(sex string)
row FORMAT delimited
fields terminated BY ',';
-- 查看表结构
desc student_static_partition;
-- 添加分区
ALTER TABLE student_static_partition ADD partition(sex='male');
ALTER TABLE student_static_partition ADD partition(sex='female');
-- 或
ALTER TABLE student_static_partition ADD partition(sex='male') partition(sex='female');

-- 删除分区
ALTER TABLE student_static_partition DROP partition(sex='male');
ALTER TABLE student_static_partition DROP partition(sex='female');
-- 或
ALTER TABLE student_static_partition DROP partition(sex='male'),partition(sex='female');

-- 查看分区
show partitions student_static_partition;
+-------------+--+
|  partition  |
+-------------+--+
| sex=female  |
| sex=male    |
+-------------+--+

-- 创建数据
vi /root/data/student_male.dat
1,tom,22
2,jack,23

vi /root/data/student_female.dat
3,rose,20
4,marry,21

-- 加载分区数据
LOAD data local inpath '/root/data/student_male.dat' overwrite 
INTO TABLE student_static_partition partition(sex='male');

LOAD data local inpath '/root/data/student_female.dat' overwrite 
INTO TABLE student_static_partition partition(sex='female');

-- 查看数据
SELECT * FROM student_static_partition;

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

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

相关文章

机器视觉技术与应用实战(Chapter Two-03)

2.5 图像滤波和增强 滤波的作用是:图像中包含需要的信息,也包含我们不感兴趣或需要屏蔽的干扰,去掉这些干扰需要使用滤波。 增强的作用是:通过突出或者抑制图像中某些细节,减少图像的噪声,增强图像的视觉效…

Jenkins----基于 CentOS 或 Docker 安装部署Jenkins并完成基础配置

查看原文 文章目录 基于 CentOS7 系统部署 Jenkins 环境基于 Docker 安装部署 Jenkins环境配置 Jenkins 中文模式配置用户名密码形式的 Jenkins 凭据配置 ssh 私钥形式的 Jenkins 凭据配置 Jenkins 执行任务的节点 基于 CentOS7 系统部署 Jenkins 环境 (1&#xff…

使用Nginx实现负载均衡的实践指南

目录 前言1 负载均衡简介2 需要实现的效果3 准备2个tomcat服务器4 配置Nginx实现负载均衡5 Nginx的服务器策略5.1 轮询(默认)5.2 权重(weight)5.3 IP哈希(ip_hash)5.4 响应时间公平分配(fair&am…

C# DotNetCore AOP简单实现

背景 实际开发中业务和日志尽量不要相互干扰嵌套,否则很难维护和调试。 示例 using System.Reflection;namespace CSharpLearn {internal class Program{static void Main(){int age 25;string name "bingling";Person person new(age, name);Conso…

Day63力扣打卡

打卡记录 寻找最近的回文数(模拟) 链接 class Solution:def nearestPalindromic(self, n: str) -> str:m len(n)candidates [10 ** (m - 1) - 1, 10 ** m 1]selfPrefix int(n[:(m 1) // 2])for x in range(selfPrefix - 1, selfPrefix 2):y …

[强网杯 2019]Upload

[强网杯 2019]Upload 开放注册直接注册一个账号然后登录进去 先对页面进行简单文件上传测试发现都不存在漏洞对网站进行目录扫描 发现www.tar.gz 打开发现是tp5框架发现源码 这里如果前面信息收集的完整会发现存在反序列化 对注册,登录,上传文件页面分…

React与VUE对照

React 和 Vue.js 都是现代前端开发中非常受欢迎的 JavaScript 框架/库。它们都有各自独特的特点和设计哲学,同时也有一些共同之处。以下是 React 和 Vue.js 的对比: 相似之处: 使用虚拟 DOM:React 和 Vue 都使用虚拟 DOM 来优化…

STM32F103RCT6开发板M3单片机教程06--定时器中断

前言 除非特别说明,本章节描述的模块应用于整个STM32F103xx微控制器系列,因为我们使用是STM32F103RCT6开发板是mini最小系统板。本教程使用是(光明谷SUN_STM32mini开发板) STM32F10X定时器(Timer)基础 首先了解一下是STM32F10X…

时序预测 | Python实现GRU-XGBoost组合模型电力需求预测

时序预测 | Python实现GRU-XGBoost组合模型电力需求预测 目录 时序预测 | Python实现GRU-XGBoost组合模型电力需求预测预测效果基本描述程序设计参考资料预测效果 基本描述 该数据集因其每小时的用电量数据以及 TSO 对消耗和定价的相应预测而值得注意,从而可以将预期预测与当前…

Linux:超级管理员(root用户)创建用户、用户组

root用户: 拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。 演示: 1、使用普通用户在根目录下创建文件夹(失败) 2、切换到root用户后,继续尝试(成功) 3、普通用户的权限&#…

TCP/IP详解——DNS 流量分析

文章目录 1. DNS 流量分析1.1 DNS 基本概念1.2 DNS 系统特性1.3 DNS 效率问题1.4 域名的组成1.5 域名解析系统1.5.1 域名解析过程 1.6 DNS 记录种类1.7 DNS 的报文格式1.7.1 DNS 报文中的基础结构部分1.7.2 DNS 查询报文中的问题部分1.7.3 DNS 响应报文中的资源记录部分1.7.4 示…

力扣面试150题 | 15.三数之和

力扣面试150题 | 15.三数之和 题目描述解题思路代码实现 题目描述 15.三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回…

【开源项目】WPF 扩展 -- 多画面视频渲染组件

目录 1、项目介绍 2、组件集成 2.1 下载地址 2.2 添加依赖 3、使用示例 3.1 启动动画 3.2 视频渲染 3.3 效果展示 4、项目地址 1、项目介绍 Com.Gitusme.Net.Extensiones.Wpf 是一款 Wpf 扩展组件。基于.Net Core 3.1 开发,当前是第一个发布版本 1.0.0&am…

Java架构师系统架构内部维度分析

目录 1 导语2.1 安全性维度概述2.2 流程安全性2.3 架构安全性2.4 安全维度总结3 伸缩性维度概述和场景思路3.1 无状态应用弹性伸缩3.2 阿里云Knative弹性伸缩3.3 有状态应用弹性伸缩3.4 伸缩性维度总结想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导语

MySQL数据库管理优化及高阶语句(用户,权限,索引,事务,存储引擎,备份,视图,查询,存储过程)

数据库用户管理 新建用户 CREATE USER 用户名来源地址 [IDENTIFIED BY [PASSWORD] 密码]; //用户名:指定将创建的用户名. 来源地址:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhos…

数据仓库与数据挖掘c5-c7基础知识

chapter5 分类 内容 分类的基本概念 分类 数据对象 元组(x,y) X 属性集合 Y 类标签 任务 基于有标签的数据,学习一个分类模型,通过这个分类模型,可以把一组属性x映射到一个特定的类别y上 类别y 提前设定好的--如:学生…

git 切换远程地址分支 推送到指定地址分支 版本回退

切换远程地址 1、切换远程仓库地址: 方式一:修改远程仓库地址 【git remote set-url origin URL】 更换远程仓库地址,URL为新地址。 git remote set-url https://gitee.com/xxss/omj_gateway.git 方式二:先删除远程仓库地址&…

八股文打卡day2——计算机网络(2)

面试题:讲一下三次握手的过程? 我的回答: 1.客户端发送报文段到服务器,主动建立连接。这个报文段中SYN标志位表示:这个报文段是用于连接的,此时SYN标志位设置为1。其中初始序列号字段包含了客户端的初始序…

华为鸿蒙应用--欢迎页SplashPage+倒计时跳过(自适应手机和平板)-ArkTs

鸿蒙ArkTS 开发欢迎页SplashPage倒计时跳过,可自适应平板和手机: 一、SplashPage.ts import { BreakpointSystem, BreakPointType, Logger, PageConstants, StyleConstants } from ohos/common; import router from ohos.router;Entry Component struct…

2023/12/17 初始化

普通变量(int,float,double变量)初始化: int a0; float b(0); double c0; 数组初始化: int arr[10]{0}; 指针初始化: 空指针 int *pnullptr; 被一个同类型的变量的地址初始化(赋值) int…