大数据预处理


1 数据提供

为了保证实践的真实性,本章为读者提供了一个较大的数据文件,即sogou.500w.utf8,该文件是大数据领域很有名的一个供研究用的数据文件,内容是sogou网络访问日志数据,该文件被众多研究和开发人员所采用。
找到sogou.500w.utf8文件,将其复制到Master的“/home/csu/resources/”目录(或者读者自己的任意目录)下。以下的大部分操作均围绕该数据文件进行。
在这里插入图片描述

2 查看数据

less sogou.500w.utf8
在这里插入图片描述

wc -l sogou.500w.utf8

在这里插入图片描述
按下Enter键后系统显示“5000000 sogou.500w.utf8”,可见文件确实有500万行。Linux中“wc”命令的功能是统计指定文件中的行数、字数、字节数,并将统计结果显示输出。参数“-l”表示统计行数,“-w”表示统计字数,“-c”表示统计字节数。

head -1000 sogou.500w.utf8 >sogou.1000.utf8
在这里插入图片描述
按下Enter键后可得到一个有1000行数据的文件sogou.1000.utf8(文件名由用户自己决定,可以是任意的名字,如sogou.demo)。读者也可以查看一下新文件的内容或行数。

3 数据扩展

很多时候用户希望扩展现有文件,例如增加新的字段,以便容纳更多的内容。下面我们就来扩展sogou.500w.utf8文件,增加年、月、日、小时4个新字段,扩展后的文件就有10个字段了。

#!/bin/bash
#infile=/data/sogou-data/sogou.500w.utf8
infile=$1
#outfile=/data/sogou-data/sogou.500w.utf8.final
outfile=$2
awk -F '\t' '{print $0"\t"substr($1,0,4)"\t"substr($1,4,2)"\t"substr($1,6,2)"\t"substr($1,8,2)}' $infile > $outfile

./sogou-log-extend.sh sogou.500w.utf8 sogou.500w.utf8.ext

less sogou.500w.utf8.ext
在这里插入图片描述

4 数据过滤

#!/bin/bash
#infile=/data/sogou-data/sogou.500w.utf8
infile=$1
#outfile=/data/sogou-data/sogou.500w.utf8.final
outfile=$2
awk -F"\t" '{if($2 != "" && $3 != "" && $2 != " " && $3 != " ") print $0}' $infile > $outfile

5 数据上传

由于要在Hadoop大数据平台上工作,所以需要将上述数据文件上传到HDFS中。首先确保已经启动了Hadoop,接下来在HDFS上创建“/sogou”目录,执行“hadoop fs -mkdir /sogou”命令;最后创建“20211103”子目录,命令是“hadoop fs –mkdir /sogou/20211103”。

在这里插入图片描述
hadoop fs -put ~/resources/sogou.500w.utf8 /sogou/20211103/

在这里插入图片描述

hadoop fs -mkdir /sogou_ext
hadoop fs -mkdir /sogou_ext/20211103
hadoop fs -put ~/resources/sogou.500w.utf8.flt /sogou_ext/20211103/
在这里插入图片描述

posted @ 2021-11-05 21:15  赵广陆  阅读(142)  评论(0编辑  收藏  举报