企业级机器学习 Pipline - log 数据处理

本文介绍了在企业级机器学习工程中处理log数据的三种方法,包括使用shell + Hive SQL、SparkSession SQL以及Spark RDD。通过Shell脚本驱动Hive SQL查询,SparkSession执行SQL处理数据并保存到HDFS,以及Spark RDD直接读取HDFS文件进行处理。这些方法常用于离线训练阶段的数据整理和特征提取。
摘要由CSDN通过智能技术生成
一整套工业实际使用的机器学习工程方案之源数据处理

文章源码下载地址:点我下载http://inf.zhihang.info/resources/pay/7692.html

原文来自于: 算法混子博客
微信公众号文章:算法全栈之路

大家都知道,我们现在常用的机器学习平台包括 离线训练 和 在线预估 2 个模块。
其中,离线部分一般负责 log数据整理样本处理特征处理模型训练等。
在线部分则包括线上的进行实时的 predict 过程 (online predict,也称为在线模型的Inference)。
如下图所示:

对于一个相对成熟的系统,我们会在 前端页面 (Html ,App等)通过SDK埋点的方式采集用户的行为日志,一般包括用户各种行为像用户开屏,页面请求、曝光,点击,下载,播放,充值等各种行为,同时也会记录 服务端 返回数据的日志,例如:对于一个广告系统来说,就有用户的请求日志和 广告下发日志等,其中,一条请求日志可能对应着多条下发日志记录。

这种系统日志通过flume,kafka ,storm 等大数据处理框架处理之后,会以 hive 表或则 hdfs 文本文件的形式保存在大数据平台上面。一般每条日志保存为log文件中的一行,涵盖可以唯一确定这次用户行为的若干字段,例如 时间戳(timestamp)、androidID、imei、userId、requestid、用户访问页面id 、用户行为等。基本上就是为了区分在某个时间某设备上谁干了什么事这样一个逻辑。

一般我们会使用 hive SQL、 Spark 或 Flink等对这些日志进行处理。对于存在hive表中的数据,我们可以有多种方式来读取数据进行处理。
这里主要介绍3中处理方法:

  1. hive sql
  2. sparksession sql
  3. spark Rdd

方法 1, log数据处理之-shell + hive SQL

使用 shell 脚本驱动hive sql的方式,来执行sql语句查找源数据若干字段写入固定的hive表。代码示例如下:


@欢迎关注微信公众号:算法全栈之路
@ filename format_log.sh

#!/bin/bash
source ~/.bashrc
set -x

cur_day=$1
source_table_name=user_xxx_rcv_log
des_table_name=user_xxx_rcv_data
des_table_location="hdfs:/user/base_table/${des_table_name}"

# 如果表不存在则新建表
${HIVE_HOME}/bin/hive  -e "
CREATE EXTERNAL TABLE IF NOT EXISTS ${des_table_name}(${column_name}) PARTITIONED BY (day STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE  LOCATION '${des_table_location}';
ALTER TABLE ${des_table_name} SET SERDEPROPERTIES(&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值