文档首页 > > 开发指南> Spark应用开发> 开发程序> Spark SQL程序> 场景说明

场景说明

分享
更新时间: 2020/03/25 GMT+08:00

场景说明

假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发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' <用于认证的业务用户>

      user.keytab文件位置请根据自己实际路径填写。

    2. 在Linux系统HDFS客户端使用命令hadoop fs -mkdir /tmp/input(hdfs dfs命令有同样的作用),创建对应目录。
    3. 在Linux系统HDFS客户端使用命令hadoop fs -put input_xxx.txt /tmp/input,上传数据文件。

开发思路

统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。

主要分为四个部分:

  • 创建表,将日志文件数据导入到表中。
  • 筛选女性网民,提取上网时间数据信息。
  • 汇总每个女性上网总时间。
  • 筛选出停留时间大于两个小时的女性网民信息。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区