标签:练习题 true.0 name sal kettle 行号 日志 data
练习题
解题过程上传百度云:
链接: https://pan.baidu.com/s/1JgOiKtpJGlU5Z9-ia5sE3A 提取码: ujtj
1.将station.csv转化成excel
2.将student.json转化为excel
3.将student.json转化为文本
4.将student.json插入到mysql的student表中
5.把student1的数据按id同步到student2,student2有相同id则更新数据
创建表
create database kettle;
use kettle;
create table student1(id int,name varchar(20),age int);
create table student2(id int,name varchar(20));
往两张表中插入一些数据
insert into stu1 values(101,‘zhangsan’,20),(102,‘lisi’,18), (103,‘wangwu’,19);
insert into stu2 values(101,‘zhaoliu’);
6.多行转一行
自定义常量数据Integer 类型的id ,String类型的name
id name
1 a
1 b
1 c
2 d
2 e
2 f
最后输出到日志
以下是输出结果:
写日志.0 - ------------> 行号 1------------------------------
写日志.0 - id = 1
写日志.0 - name = a, b, c
写日志.0 -
写日志.0 - ====================
分组.0 - 完成处理 (I=0, O=0, R=6, W=2, U=0, E=0)
写日志.0 -
写日志.0 - ------------> 行号 2------------------------------
写日志.0 - id = 2
写日志.0 - name = t, y, o
写日志.0 -
写日志.0 - ====================
写日志.0 - 完成处理 (I=0, O=0, R=2, W=2, U=0, E=0)
Spoon - 转换完成!!
7.一列转多行
自定义常量数据Integer 类型的id ,String类型的name
id name
1 a,b,c
2 e,g
最后输出到日志
以下是输出结果:
写日志.0 - ------------> 行号 1------------------------------
写日志.0 - id = 1
写日志.0 - new_name = a
写日志.0 -
写日志.0 - ====================
写日志.0 -
写日志.0 - ------------> 行号 2------------------------------
写日志.0 - id = 1
写日志.0 - new_name = b
写日志.0 -
写日志.0 - ====================
列拆分为多行.0 - 完成处理 (I=0, O=0, R=2, W=5, U=0, E=0)
写日志.0 -
写日志.0 - ------------> 行号 3------------------------------
写日志.0 - id = 1
写日志.0 - new_name = c
写日志.0 -
写日志.0 - ====================
写日志.0 -
写日志.0 - ------------> 行号 4------------------------------
写日志.0 - id = 2
写日志.0 - new_name = e
写日志.0 -
写日志.0 - ====================
写日志.0 -
写日志.0 - ------------> 行号 5------------------------------
写日志.0 - id = 2
写日志.0 - new_name = g
写日志.0 -
写日志.0 - ====================
写日志.0 - 完成处理 (I=0, O=0, R=5, W=5, U=0, E=0)
Spoon - 转换完成!!
8.将hive表的数据输出到hdfs
在hive中创建两张表dept和emp
CREATE TABLE dept(deptno int, dname string,loc string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’;
CREATE TABLE emp(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm int,
deptno int)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’;
插入数据
insert into dept values(10,‘accounting’,‘NEW YORK’),(20,‘RESEARCH’,‘DALLAS’),(30,‘SALES’,‘CHICAGO’),(40,‘OPERATIONS’,‘BOSTON’);
insert into emp values
(7369,‘SMITH’,‘CLERK’,7902,‘1980-12-17’,800,NULL,20),
(7499,‘ALLEN’,‘SALESMAN’,7698,‘1980-12-17’,1600,300,30),
(7521,‘WARD’,‘SALESMAN’,7698,‘1980-12-17’,1250,500,30),
(7566,‘JONES’,‘MANAGER’,7839,‘1980-12-17’,2975,NULL,20);
9.自定义常量数据
整体流程为
输出结果如下:
写日志.0 - ------------> 行号 1------------------------------
写日志.0 - deptno = d1
写日志.0 - ename = e2
写日志.0 - sal = 3456
写日志.0 - rn = 1
写日志.0 -
写日志.0 - ====================
写日志.0 -
写日志.0 - ------------> 行号 2------------------------------
写日志.0 - deptno = d1
写日志.0 - ename = e4
写日志.0 - sal = 889
写日志.0 - rn = 2
写日志.0 -
写日志.0 - ====================
分组.0 - 完成处理 (I=0, O=0, R=7, W=7, U=0, E=0)
写日志.0 -
写日志.0 - ------------> 行号 3------------------------------
写日志.0 - deptno = d1
写日志.0 - ename = e1
写日志.0 - sal = 234
写日志.0 - rn = 3
写日志.0 -
写日志.0 - ====================
写日志.0 -
写日志.0 - ------------> 行号 4------------------------------
写日志.0 - deptno = d1
写日志.0 - ename = e3
写日志.0 - sal = 234
写日志.0 - rn = 4
写日志.0 -
写日志.0 - ====================
写日志.0 -
写日志.0 - ------------> 行号 5------------------------------
写日志.0 - deptno = d2
写日志.0 - ename = e5
写日志.0 - sal = 1112
写日志.0 - rn = 1
写日志.0 -
写日志.0 - ====================
写日志.0 -
写日志.0 - ------------> 行号 6------------------------------
写日志.0 - deptno = d2
写日志.0 - ename = e7
写日志.0 - sal = 868
写日志.0 - rn = 2
写日志.0 -
写日志.0 - ====================
写日志.0 -
写日志.0 - ------------> 行号 7------------------------------
写日志.0 - deptno = d2
写日志.0 - ename = e6
写日志.0 - sal = 13
写日志.0 - rn = 3
写日志.0 -
写日志.0 - ====================
写日志.0 - 完成处理 (I=0, O=0, R=7, W=7, U=0, E=0)
Spoon - 转换完成!!
10.自定义常量数据
String 类型的name ,Integer类型的sal
name sal
a 12
b 32
b 43
c 19
d 678
过滤条件为当sal大于30时输出为正确的日志,错误是也是
输出为日志
以下是运行结果
data_false.0 - ------------> 行号 1------------------------------
data_false.0 - name = a
data_false.0 - sal = 12
data_false.0 -
data_false.0 - ====================
data_true.0 -
data_true.0 - ------------> 行号 1------------------------------
data_true.0 - name = b
data_true.0 - sal = 32
data_true.0 -
data_true.0 - ====================
data_false.0 -
data_false.0 - ------------> 行号 2------------------------------
data_false.0 - name = c
data_false.0 - sal = 19
data_false.0 -
data_false.0 - ====================
data_true.0 -
data_true.0 - ------------> 行号 2------------------------------
data_true.0 - name = b
data_true.0 - sal = 43
data_true.0 -
data_true.0 - ====================
data_true.0 -
data_true.0 - ------------> 行号 3------------------------------
data_true.0 - name = d
data_true.0 - sal = 678
data_true.0 -
data_true.0 - ====================
过滤记录.0 - 完成处理 (I=0, O=0, R=5, W=5, U=0, E=0)
data_false.0 - 完成处理 (I=0, O=0, R=2, W=2, U=0, E=0)
data_true.0 - 完成处理 (I=0, O=0, R=3, W=3, U=0, E=0)
Spoon - 转换完成!!
11.最后一行
按照sal进行排序
识别最后一行
最终输出到日志中
整个流程
最后结果
12.字段处理和字段选择
整体流程:
13.数据流优先级排序,按照source_1,source_2,source_3前后依次输出
整体流程
14.流查询
整体流程:
流查询的条件:
最后的结果:
15.分流switch
整体流程:
自定义数据:
Switch/Case中的选项为:
标签:练习题,true.0,name,sal,kettle,行号,日志,data 来源: https://blog.csdn.net/qq_45765882/article/details/105904188
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。