大数据预处理

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据预处理

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”。

abc280e4e4004221ae98d33b28b11942.png

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/


相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
MySQL8.0新特性之公用表表达式学习
公用表表达式(或通用表表达式)简称为CTE(Common Table Expressions)。CTE是一个命名的临时结果集,作用范围是当前语句。CTE可以理解成一个可以复用的子查询,当然跟子查询还是有点区别的,CTE可以引用其他CTE,但子查询不能引用其他子查询。所以,可以考虑代替子查询。
260 0
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
|
12月前
|
JSON 自然语言处理 数据库
ElasticSearch基础1——索引和文档。Kibana,RestClient操作索引和文档+黑马旅游ES库导入
概念、ik分词器、倒排索引、索引和文档的增删改查、RestClient对索引和文档的增删改查
ElasticSearch基础1——索引和文档。Kibana,RestClient操作索引和文档+黑马旅游ES库导入
Py3 ModuleNotFoundError: No module named ‘Crypto‘;ModuleNotFoundError: No module named Cryptodome‘
Py3 ModuleNotFoundError: No module named ‘Crypto‘;ModuleNotFoundError: No module named Cryptodome‘
179 0
|
Kubernetes NoSQL Go
最简单的 K8S 部署文件编写姿势,没有之一!
最简单的 K8S 部署文件编写姿势,没有之一!
|
分布式计算 资源调度 Hadoop
Hadoop配置文件yarn-env.sh
【7月更文挑战第18天】
500 2
|
SQL 分布式计算 运维
MaxCompute操作报错合集之遇到字段超长的报错,该如何处理
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
243 6
|
Oracle 关系型数据库 MySQL
OceanBase有什么特性?
OceanBase有什么特性?【8月更文挑战第12天】
347 0
|
JSON API 数据库
Flask 实战:实现增改及分页查询的完整 Demo
使用 Flask 搭建的 RESTful API Demo,包含增、改用户信息和分页查询功能。利用 Flask-SQLAlchemy 处理数据库操作。环境准备:安装 Flask 和 Flask-SQLAlchemy。核心代码展示用户模型、增加用户、分页查询和更新用户信息的路由。注意点包括数据库配置、错误处理、JSON 数据处理、幂等性、安全性和编码问题。提供完整源码下载链接。
1096 2
|
人工智能 JavaScript 中间件
【利用AI让知识体系化】入门Egg框架(含实战)(一)
【利用AI让知识体系化】入门Egg框架(含实战)