黑马程序员《数据清洗》学习笔记CSVJSON数据抽取
Posted 眨个眼就睡着
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑马程序员《数据清洗》学习笔记CSVJSON数据抽取相关的知识,希望对你有一定的参考价值。
目录
4.1 抽取文本数据
4.1.1 CSV文件的抽取
CSV是Comma-Separated Values的缩写,即逗号分隔符。CSV文件是用逗号分隔数据字段的文件,因此也被称为逗号分隔值文件,有时会使用字符替代逗号实现分隔,因此也被称为字符分隔文件。CSV文件是以纯文本形式存储表格数据 (数字和文本),纯文本意味着该文件是一个字符序列。CSV文件可通过Excel打开,也可以通过txt、Notepad++、等文本编译器打开,从而对文件进行查看、编辑等操作。
CSV作为数据转存的一种常用格式,具有以下8点特定的实现规则:
· 文件开头不能留空,以“行”为单位。
· 文件可含或不含列名,若含有列名,则位于文件第一行。
· 文件中的一行数据不能跨行,行与行之间不存在空行。
· 文件中以英文半角逗号(即“,”)作为分隔符,若列为空,也要表达空列的存在。
· 文件中的列内容,若存在英文半角引号(即“"”),则替换成半角双引号(即“""”)进行转义,因为在 抽取数据时,通过使用半角双引号“""”将所有的字符串内容引起来。
· 在文件读取时,引号和逗号操作规则可以互逆。
· 文件中的编码格式不做限制,可以是ASCII,也可以是Unicode或者UTF8等编码格式。
· 文件中不支持数字或特殊字符。
1. 打开Kettle工具,创建转换
使用Kettle工具创建一个转换csv_extract,并添加“CSV文件输入”控件、“表输出”控件以及Hop跳连接线,用于实现CSV文件数据的抽取功能,如图4-1。
图4-1
2. 配置“CSV文件输入”控件
双击4-1中“CSV文件输入”控件,进入“CSV文件输入”界面,先单击“浏览”按钮,选择需要抽取的文件csv_extract;然后单击“获取字段”按钮,Kettle自动检索CSV文件,并对其中的字段类型、格式、长度、精度等属性进行分析,如图4-2。单击“预览”按钮,查看csv_extract.csv文件是否抽取到CSV文件输入流中,抽取成功则单击“关闭”➡“确定”按钮,完成“CSV文件输入”控件的配置。
图4-2
3.配置“表输出”控件
双击图4-1中的“表输出”控件,进入“表输出”界面,先单击“新建”按钮,配置数据库连接(数据库需要提前创建),配置完成后单击“测试”按钮,成功则单击“确认”
图4-3
单击“表输出”界面目标表右侧的“浏览”按钮,选择输出的目标表,即数据表csv_extract(该表需要提前创建,切需要根据抽取的文件csv_extract中数据的字段和数据类型进行创建);勾选“指定数据库字段”复选框,用于将数据表csv的字段与CSV文件csv_extract.csv中的字段进行匹配,如图4-4。
图4-4
在“表输出”界面选择“数据库字段”选项卡,单击“输入字段映射”按钮,弹出“映射匹配”对话框,依次选中“源字段”中的字段和“目标字段”中的对应字段,单击Add按钮,将选中的一组映射字段添加至“映射”框中,若“源字段”中字段和“目标字段”中字段相同,则可以单击“猜一猜”按钮,让Kettle自动实现映射,如图4-5。完成后单击“确定”按钮,完成“输入字段映射”,再单击“确定”按钮完成“表输入”空间配置。
图4-5
4. 运行转换csv_extract
单击转换工作区顶部的运行按钮,运行转换,实现将CSV文件中的数据抽取到数据表csv中,通过SQLyog工具查看数据表,如下图4-6。
图4-6
4.2 抽取Web数据
4.2.1 JSON文件的数据抽取
JSON(javascript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它是基于ECMAScripet(欧洲计算机协会制定的js规范)的一个子集,从JavaScript脚本语言中演变而来,采用完全独立于编程语言的文本格式储存和表示数据。JSON易于程序开发者阅读和编写,也易于机器解析和生成,并有效地提升网络传输的效率。
需要注意的是,JSON是一种文本数据交换格式,并非编程语言,其语法只能支持字符串、数字(整数、浮点数)、布尔值、null以及对象和数组类型,常用对象和数组。
1. 打开Kettle工具,创建转换
使用Kettle工具创建转换json_extract,添加JSON input控件、“表输出”控件以及Hop跳连接线,如图4-7。
图4-7
2. 配置JSON input控件
双击图4-7中的JSON input控件,进入“JSON输入”界面,单击文件或路径右侧的“浏览”按钮,选择需要抽取的JSON文件json_extract.json,单击“增加”按钮,将所选文件添加到“选中的文件”处;单击“字段”选择卡界面,如图4-8。
图4-8
进入“字段”选择卡界面后,添加需要抽取的数据字段,单击“确定按钮”,完成JSON input控件的配置,如图4-9。
图4-9
双击图4-7中“JSON input2”控件,进入“JSON输入”界面,勾选“源定义在一个字段里?”复选框;在“从字段获取源”后的下拉列表中选择字段名,单击“字段”选择卡,如图4-10。
图4-10
进入“字段”选择卡界面,添加从所选字段中抽取的字段,单击“确定”按钮,完成对JSON input2控件的配置,如图4-11。
图4-11
3. 配置“表输出”控件
双击图4-7中的“表输出”控件,进入“表输出”界面,如图4-12。单击“新建”按钮,完成数据库连接,mysql数据库连接的配置同图4-3。
图4-12
单击图4-12中目标表右侧“浏览”按钮,选择输入出的目标表,即数据表json(该表需要提前创建,且表结构需根据json_extract.json中的数据字段和数据类型创建)如图4-13。
图4-13
勾选“指定数据库字段”复选框,对数据表中的字段和JSON文件json_extract.json的字段进行匹配;单击“输入字段映射”按钮,弹出“映射匹配”对话框,单击“猜一猜”按钮,让Kettle自动实现映射;单击“确定”按钮,完成“表输出”控件配置,如图4-14。
图4-14
4. 运行转换json_extract
单击转换工作区“运行”按钮,运行创建的转换,通过SQLyog工具查看数据表,如图4-15。
图4-15
以上是关于黑马程序员《数据清洗》学习笔记CSVJSON数据抽取的主要内容,如果未能解决你的问题,请参考以下文章