当前课程知识点:高级大数据系统 >  Basics of Linux Data Processing >  Manipulating Data on Linux >  Video

返回《高级大数据系统》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《高级大数据系统》慕课在线视频列表

Video课程教案、知识点、字幕

我们刚刚介绍了在linux单机上

简单的去查看数据怎么办

我们用more

或者是我们用head这样的命令

我们可以简单的对行进行操作

通过cat和paste

对行和列进行一定的扩展

然后我们还看了一下

怎么样通过grep

对数据进行简单的一个搜索

我们可以搜索这个

原始文件中的特定的

这种模式的一些行

或者说对特定的这个行中

包含的正则表达式

进行一个匹配

那这是grep

那下面我们会介绍

另外一个简单的工具

叫做被awk

他可以来进行这个简单的

这种数据的这个分行

或者分列的一个操作

那我们来看在这个awk当中

实际上它是把数据当成了一个

表格类型的一个输入

那么这个表格就包含了

从第一列到第n列

那么它可以对这些列

进行一个操作

我们通过一个例子

先给大家展示一下

awk它具有这种能力

那么在这个例子当中

我们有一个文件叫做3.TXT

是我们用paste生成的

那么这个文件包含两列

那我们现在给大家一个例子

比如说我们想把这个两页的文件

又返回成单列了

比如说我们想把第二列

给重新输出到屏幕

我们应该怎么做

那这时候我们可以通过一个awk的print

就可以完成这样一个事情

那么print代表的含义是把

这个数据输出到屏幕

那么输出的是什么呢

$2给出的

就是输出的第二列

那么它运行的一个结果

是什么样呢

我们把文件名加上

他给出的这个运行结果

就是这个文件中的第二列

所以awk给了我们更加灵活的一个

在列级别进行数据操作的

这样一个办法

那么我们回到这个ppt

我们看看在linux中一些典型的

用法包含哪一些

那么第一个用法

就是说我们通过awk进行查找

那这边我们看到通过了

/a/这样的一个命令型查找

实际上它的一个

目标和刚刚grep

介绍的是一样的

我们在每一行当中去搜索

包含a大小写敏感的这样一个行

然后把$0给打印出来

$0和刚刚我们给

它的这个$2

其实类似的

只不过$0代表的

不是任何一列

而是说所有的列

也就是说整行

那我们发现

它把包含a的这个数据

全部输出到了屏幕上

那么awk还有一个方法

是对这个不同的行

进行一个格式化

我们看到在当前的这个例子当中

我们要awk

进行print

print$3和$4

并且他们中间加入了一个

这个制表符

比如说一个比较大的一个空格

那我们看它的确是在输出中

把这个这五行的

第二列和第三列

第三列和第四列

都输出到了屏幕上

那么输出了每个同学的

科目和他们的成绩

那我们再来看awk的一些典型应用

还包括哪一些

那么

在这个awk实际上我们是

可以嵌入一定的这个程序结构的

实际上它整个awk

是可以输入

比较复杂的一个程序

程序可以允许用户自定义变量

允许用户在里面

使用条件语句等等

那么我们这边通过一个简单的例子

让大家体会一下

那么在awk当中

我们首先使用了-a进行查找

也就是说

行中包含a的会被拿出来处理

如果包含a则执行大括号里面的这个语句

也就是说count进行++

那么这里的++和c++里面的

++是相同的含义

也就是说对cnt

进行+1的一个操作

然后当end之后进行一个打印

end就是说

当整个awk打所有的文件

跑完之后

他进行了一个操作

我们发现它要输出一个字符串

叫Count =

然后再把刚刚的这个

count的变量给输出来

那么简单的来理解

这句语句实际上是想要统计行数

那么有点像我们刚刚用grep

进行-c的一个操作

那么用这个awk

也可以把包含某一个pattern的

这样一个行数给统计出来

实际上我们很轻松就可以发现

awk可能做的远远不止统计行数

我们实际上如果把count ++

给换成count加上那个用户的成绩的话

我们就可以很容易的统计出

这五个同学

他们的这个考试的总分是多少分

我们也可以进一步算出他的平均分

也就是说这个count除了++以外

它实际上是可以进行任意的这个

我们允许的这种程序的运算

那么awk

还有一些其他的用途

比如说我们对数据

进行预处理的时候

可能想要把重复的行给去掉

那我们来看这个例子是怎么做的

那么这个代码是这样写的

在awk之后

它使用了一个感叹号

也就是逻辑非的意思

那么只有当这个逻辑

不成立的时候

才会对后面的语句进行执行

那么它的语句是什么

当整行不在一个array中

也就是说

这个行没有出现在这个array里面

这个array实际上是一个

类似于数组的一个结构

它在里面包含了一系列的这种字符串

那我们来看这个array

是怎么样把字符串添加进去的

我们发现

如果这个条件不成立的话

那么就会执行array

然后中括号$0

也就是说把$0加入到了

这个array里面去

那么再把这一行给打印出来

那么也就是说

整个逻辑是这样的

当他不在我们维护的

一个数组的这样一个

结构里面出现的时候

我们就会把这个

数据行输出到屏幕

同时把它加到数组里面

达到一个消去

重复行的一个目标

当然这种消去的方式

可能它的性能会不是特别的高

但是大家可以

对小型的这种数据进行一个处理

使用这样的一个模式

另外我们还能做什么呢

我们还可以在里面加一些条件的判断

比如说第二个例子

我们可以通过

对第三行和第四行

是不是完全一致进行判断

然后决定要不要输出

那这是awk对复杂的这种条件

进行判断的一个例子

那么还有我们可以对特别的

一些行进行打印

我们刚刚已经说到

我们可以打印一行

或者打印多行并且

以重新安排的这种行的

这样一个顺序来进行呈现

这是我们刚刚讲到的这个

awk它的一些方法

大家通过grep或者通过

awk加上grep

或者加上以前说过更早的

命令进行组合

实际上已经可以简单的

对这个linux下的

这种文本文件进行一定的处理

那么

我们介绍的单机上最后一个命令

叫做sort

sort实际上和他的名字一样

是对数据进行一个排序

比如说在PPT中的这个例子里

面我们可以对文件进行排序

然后把每一行按照

这种字母表的顺序排序

然后我们加上-R可以

得到一个反向的排序

然后我们还可以对特定的列进行排序

那么通过加上-K这样一个参数

我们通过演示给大家

更加直观的一个认识

那么同样我们

以这个1.txt为例

那么我们看到1.txt实际上

并不是完全排好的一个文件

这时候如果我们用sort

对1.txt进行操作的话

我们发现

最后一行被排到了第二行

因为它按照字母序的顺序进行排序

那么如果我们想反向排序

我们加上-R

我们发现把最后一行排到了

最前面达到一个反向排序的目标

那我们怎么样对数字进行排序呢

我们给3.txt作为例子

我们发现3.txt有两列

那么我们想对第二列

并且按照数字进行排序

实际上我们会用

两个参数的一个组合

第一个组合我们

会要求他对这个3.txt进行排序

我们在这里通过管道的方式

进行叠加

我们对它进行sort

sort我们需要它进行升序

所以我们不加-R

但是我们要求他进行-n

也就是说按照数字的方式进行排序

而不按照字母表的方式进行排序

那数字的方式进行排序

就会把这个数字按照从小到大

按照顺序的方式进行排序

我们要求指定的是K等于2

也就是说对第二列进行排序

那我们达到的效果就是这样

我们发现这个排序实际上

扩展到了其他的列

我们把1和a的这一列

输出到了最前面

那么这就是大家在sql里面

需要做的排序的

这样一个命令

而实际上我们的linux底下

也可以通过简单的命令进行一个

类似的操作

还是刚刚的那句话

希望大家能够把这些命令进行

有效的组合

然后达到一个对数据进行

相对比较复杂

并进行多样化处理的一个目标

高级大数据系统课程列表:

Introduction to Big Data Systems

-What is big data and what is big data system?

--Video

-Problems in big data systems?

--Video

-Overview of the course

--Video

-Principles of big data system design

--Video

Basics of Linux Data Processing

-Manipulating Data on Linux

--Video

--Video

--Video

-Basics of Linux Data Processing--Manipulating Data

-Running Commands on a Single Machine

--Video

-Running Commands on a Single Machine--作业

-Using a Linux Cluster

--Video

-Using a Linux Cluster--作业

Distributed File System

-Storage for Big Data Computing: Distributed file system

--Video

-Storage for Big Data Computing: Distributed file system--作业

-File system and GFS

--Video

-File system and GFS--作业

-Understanding HDFS using Legos

--Video

-Understanding HDFS using Legos--作业

-File System Implementation and DFS

--Video

--Video

-File System Implementation and DFS--作业

MapReduce

-What is MapReduce and why

--Video

-What is MapReduce and why

-Learn MapReduce by playing with cards

--Video

-Processing pattern

--Video

-Processing pattern--作业

-Hadoop

--Video

-Hadoop--作业

-Algorithms in MapReduce

--Video

-Algorithms in MapReduce--作业

-Tutorial

--Video

In-memory Processing

-Background

--Video

-Background--作业

-Spark

--Video

-Spark--作业

-Use Spark for data mining

--Video

-Use Spark for data mining--作业

-Spark data processing

--Video

-Spark data processing--作业

-Experiment in Spark

--Video

-Experiment in Spark--作业

Streaming Data Processing

-Introduction to streaming data processing

--Video

-Introduction to streaming data processing--作业

-Storm

--Video

--Video

--Video

-Storm--作业

-Spark streaming

--Video

--Video

-Spark streaming--作业

NoSQL

-NoSQL introduction

--Video

-NoSQL introduction--作业

-Common Advantages

--Video

-Common Advantages--作业

-Bigtable

--Video

-Bigtable--作业

-Master Startup

--Video

-Master Startup--作业

-HBase

--Video

-HBase--作业

Graph Processing

-What is GraphDB and Graph data processing

--Video

-What is GraphDB and Graph data processing--作业

-Graph systems

--Video

-Graph systems

-Example of a GraphDB

--Video

-Example of a GraphDB--作业

Machine Learning System

-Mahout

--Video

-Mahout--作业

-Case Study: Recommendation

--Video

-Case Study: Recommendatio作业

-Recommendation in Mahout

--Video

-Recommendation in Mahout--作业

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。