
# 场景说明
#### 场景说明
假定用户有某个周末网民网购停留时间的日志文本，基于某些业务要求，要求开发Spark应用程序实现如下功能：
- 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。
- 周末两天的日志文件第一列为姓名，第二列为性别，第三列为本次停留时间，单位为分钟，分隔符为","。 log1.txt：周六网民停留日志
  ```
  LiuYang,female,20
  YuanJing,male,10
  GuoYijun,male,5
  CaiXuyu,female,50
  Liyuan,male,20
  FangBo,female,50
  LiuYang,female,20
  YuanJing,male,10
  GuoYijun,male,50
  CaiXuyu,female,50
  FangBo,female,60
  ```
  log2.txt：周日网民停留日志
  ```
  LiuYang,female,20
  YuanJing,male,10
  CaiXuyu,female,50
  FangBo,female,50
  GuoYijun,male,5
  CaiXuyu,female,50
  Liyuan,male,20
  CaiXuyu,female,50
  FangBo,female,50
  LiuYang,female,20
  YuanJing,male,10
  FangBo,female,50
  GuoYijun,male,50
  CaiXuyu,female,50
  FangBo,female,60
  ```
  
 
#### 数据规划
首先需要把原日志文件放置在HDFS系统里。
1. 本地新建两个文本文件，将log1.txt中的内容复制保存到input_data1.txt，将log2.txt中的内容复制保存到input_data2.txt。
2. 在HDFS上建立一个文件夹，"/tmp/input"，并上传input_data1.txt，input_data2.txt到此目录，命令如下。
   1. 在HDFS客户端，执行如下命令获取安全认证。 cd /opt/client
      kinit -kt '/opt/client/Spark/spark/conf/user.keytab' <用于认证的业务用户>
      ![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/note_3.0-zh-cn.png)
      user.keytab文件位置请根据自己实际路径填写。
      
   
   2. 在Linux系统HDFS客户端使用命令*hadoop fs -mkdir /tmp/input*（hdfs dfs命令有同样的作用），创建对应目录。
   
   3. 在Linux系统HDFS客户端使用命令*hadoop fs -put* *input_xxx.txt /tmp/input*，上传数据文件。
    
 
#### 开发思路
统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。
主要分为四个部分：
- 创建表，将日志文件数据导入到表中。
- 筛选女性网民，提取上网时间数据信息。
- 汇总每个女性上网总时间。
- 筛选出停留时间大于两个小时的女性网民信息。
 
