当前位置: 首页 > news >正文

数据仓库技术及应用(练习1)

1.创表

(1)customers.csv

CREATE EXTERNAL TABLE IF NOT EXISTS customers (  
customer_id int,  
customer_fname varchar(45),  
customer_lname varchar(45),  
customer_email varchar(45),  
customer_password varchar(45),  
customer_street varchar(255),   
customer_city varchar(45),
customer_state varchar(45),  
customer_zipcode varchar(45) 
)
ROW FORMAT  serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties ("separatorChar"=",")  
LOCATION '/data/retail_db/customers';

(2)categories.csv

CREATE EXTERNAL TABLE IF NOT EXISTS categories (  
category_id int,  
category_department_id int,  
category_name varchar(45)
) 
ROW FORMAT  serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties ("separatorChar"=",")  
LOCATION '/data/retail_db/categories';
CREATE EXTERNAL TABLE IF NOT EXISTS departments (  
department_id int,
department_name varchar(45)
) 
ROW FORMAT  serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties ("separatorChar"=",")  
LOCATION '/data/retail_db/departments';

(3)order_items.csv

CREATE EXTERNAL TABLE IF NOT EXISTS order_items (  
order_item_id int,
order_item_order_id int,  
order_item_product_id int,  
order_item_quantity int,  
order_item_subtotal float,  
order_item_product_price float)
ROW FORMAT  serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties ("separatorChar"=",")  
LOCATION '/data/retail_db/order_items';

(4)orders.csv

CREATE EXTERNAL TABLE IF NOT EXISTS orders (  
order_id int,  
order_date date,  
order_customer_id int,  
order_status varchar(45)
)
ROW FORMAT  serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties ("separatorChar"=",")  
LOCATION '/data/retail_db/orders';

(5)products.csv

CREATE EXTERNAL TABLE IF NOT EXISTS products (  
product_id int,  
product_category_id int,
product_name varchar(45),  
product_description varchar(255),  
product_price float,
product_image varchar(255)) 
ROW FORMAT  serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties ("separatorChar"=",")  
LOCATION '/data/retail_db/products';

2.Hive内置函数操作

  • 在商品表products中,使用字符函数对商品名称product_name进行截取并输出
  • 要求商品名称不高于x个字符
  • 其中x取第10个字符向后最近空格的位置

关键步骤:

Substr()可以实现字符截取

Locate()可以实现x值的获取 

select substr(a.product_name,0,a.loc)
from
(select product_name,locate(" ",product_name,10) as loc
from products) a limit 5;
  • 使用Streaming将顾客表中的顾客名称转换为大写

关键步骤: 运用Shell Sed完成操作转换 sed’/s[a-z]/\u&/g’,可将匹配的小写字符转换为大写

select transform(customer_lname) 
using "/bin/sed '/s[a-z]/\u&/g' " as lname from customers limit 10;

http://www.lryc.cn/news/458016.html

相关文章:

  • 老板的“神助攻”:公司电脑监控软件
  • 前端vue部署网站
  • Unity3D 动画回调函数详解
  • el-table表格表尾合计行,指定合计某几列,自定义合计方法
  • 一款工具替你解决Mac电脑菜单栏图标杂乱问题
  • MySQL 基础入门教程
  • 俏生元将传统膳食智慧融入现代生活,自然成分绽放健康光彩
  • 腾讯云推流播放相关
  • UE5运行时动态加载场景角色动画任意搭配-相机及运镜(二)
  • @JsonAlias和@JSONField序列化和反序列化
  • k8s1.27部署ingress 1.11.2
  • 【运维】自动化运维详解
  • 线控底盘技术介绍
  • DOM对象
  • [SQL] 数据库图形化安装和使用
  • springboot 前后端处理日志
  • C++11 简单手撕多线程编程
  • 刷c语言练习题7(牛客网)
  • Web Worker和WebSocket
  • 【LeetCode】动态规划—712. 两个字符串的最小ASCII删除和(附完整Python/C++代码)
  • wordpress Contact Form 7插件提交留言时发生错误可能的原因
  • uibot发送邮件:自动化邮件发送教程详解!
  • 【PostgreSQL】PG数据库表“膨胀”粗浅学习
  • 力扣(leetcode)每日一题 871 最低加油次数 | 贪心
  • ppt压缩文件怎么压缩?压缩PPT文件的多种压缩方法
  • 2024.10月11日--- SpringMVC拦截器
  • uniapp 锁屏显示插件 Ba-LockShow(可让vue直接具备锁屏显示能力)
  • CSS计数器
  • 嵌入式Linux:信号集
  • Linux 外设驱动 应用 1 IO口输出