分析数据用的小工具,做个笔记
/app/hives/myscript/nginx_ip_date.py;
#!/usr/bin/env python
#coding:utf-8
import datetime
import time
import re
line = '''
202.43.151.2 - - [28/Mar/2012:19:17:28 +0800] "GET /favicon.ico HTTP/1.1" http_status 404 988 "-" "360se" "-" 0.010
'''
class Parser :
'''
把传进来的固定格式的日期,转换成更友好的格式,方便统计
date 方法返回 Y-m-d 格式日期
dateH 方法返回 Y-m-d H 就是精确到小时
'''
def __init__( self , str ):
str = str.replace(' +0800','')
str = str.replace('[','')
str = str.replace(']','')
self.str = str
def date( self ) :
dt = datetime.datetime.strptime( self.str,'%d/%b/%Y:%H:%M:%S')
return dt.strftime('%Y-%m-%d')
def dateH( self ) :
dt = datetime.datetime.strptime( self.str,'%d/%b/%Y:%H:%M:%S')
return dt.strftime('%Y-%m-%d %H')
class LineVo() :
'''
暂时把一行数据分为两个列,IP和日期,用来训练PV等统计
'''
def __init__( self , line ):
self.line = line
def getDate( self ):
pattern = '\\[.+\\+0800\\]'
match = re.search( pattern , self.line )
s = match.start()
e = match.end()
return self.line[s+1:e-1]
def getIp( self ):
pattern = '\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3} '
match = re.search( pattern , self.line )
s = match.start()
e = match.end()
return self.line[s:e]
for line in sys.stdin :
try:
vo = LineVo(line.strip())
dt_src = vo.getDate()
ip = vo.getIp()
dt = Parser(dt_src).date()
print '%s\t%s' % (ip,dt)
except:
print 'fuck\terror'
add file 'xxx.py' 加载python脚本
transform(...) using 'xxx.py' as c0,c1,... 在 sql 中使用python脚本处理数据
distinct 可以去除重复
distrbute by 指定分区关键字就是 mapred 的 partition 函数
sort by 就是 reducen 内排序
以下是一个demo 用途是统计nginx日志的PV和独立IP,按天统计:
add file /app/hives/myscript/nginx_ip_date.py;
select *
from (
select dt , count(ip) as pv , count(distinct ip) as sip
from (
select transform(info) using 'nginx_ip_date.py' as ip , dt
from log_src
where ds = '2013-05-30' and type = 'users.access.log'
)tab1 group by dt
) tab1
distribute by tab1.pv sort by tab1.pv desc , tab1.sip asc
分享到:
相关推荐
某机构Python大数据教程文字版,包含笔记讲义代码等资料,本次使用了SeeYueSalt主题导出PDF,更清爽规范 目录: 00-代码-Python基础-8.pdf 00-笔记-Python基础-8.pdf 00-讲义-Python基础-8.pdf 01-代码-Python进阶...
SparkSQL:提供通过ApacheHive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,SparkSQL查询被转换为Spark操作。对熟悉Hive和HiveQL的人,Spark可以拿来就用。SparkStrea
PySpark电商分析案例讲解,Python+Spark,Python+Spark SQL,Python+SparkStream,Python+Hive等视频讲解,含讲义、代码、笔记、软件等,原价值千元内部培训教程现免费对外公开。
Hadoop、Spark、机器学习、Java、Python、单元测试、清洁代码、Py 项目管理等主题, 关注我,,,, 获取 HDFS 文件大小 $ hdfs dfs -du -s -h hdfs://hadoop-cluster/user/hive/warehouse/hive_schema.db/table 655...
Spark SQL增加了DataFrame(即带有Schema信息的RDD),使用户可以在Spark SQL中执行SQL语句,数据既可以来自RDD,也可以是Hive、HDFS、Cassandra等外部数据源,还可以是JSON格式的数据 Spark SQL目前支持Scala、...
关于Python+Spark 的使用、PySpark编程,Python+Hive大数据分析等的视频讲解(含讲义、代码、笔记、软件等),原价值千元内部培训教程现对外公开。
笔记 本文档是使用 Asciidoctor 0.1.4 [] 完成的 Pig 和 Hive 简介以及两者的简单比较。 这项工作的目的是向其他人介绍 Pig、Hive 和 Hadoop,提供对通过它们运行 Map-Reduce 作业的基本了解。 除了我希望说明比较猪...
Python 3.6(普通Python,带有其他库,例如NumPy,SciPy,Pandas,Matplotlib,Scikit-learn等), Pyspark(Python 3.6 +库+ Spark), Scala 2.11 + Spark R(具有SparkR,但默认情况下未加载)。 该存储库还...
0-读论文(7篇) 文章编号 文章译文 链接 0 【读论文】先知 1个 【论文笔记】在神经网络中提取知识 2 【论文笔记】深层神经网络很容易被愚弄 ... 【论文笔记】深度神经网络的特征如何可传递 ...打包Python
地铁api数据DW分析BI过程源数据收集和HDFS加载在首尔开放数据广场发布和调用与地铁使用相关的数据API密钥通过Anaconda3构建python 3.8.5环境,打开jupyter笔记本端口,并执行收集代码。 通过Nifi流进行HDFS加载和...
您随时可以在GitHub上找到最新版本https://github.com/dimajix/spark-training内容存储库包含不同类型的文档Spark / Scala的源代码适用于PySpark的Jupyter笔记本Zeppelin笔记本用于Spark / Scala Hive SQL脚本猪...
Python 实现事件生产者。 每个事件消息描述单个产品购买。 生产者应该连接到 Flume 套接字(见下文)并以 CSV 格式发送事件,每行一个事件。 产品购买事件属性: 财产 分布类型要求 数据要求 产品名称 制服 产品价格...
Hadoop,Yarn,Spark,Hive,Zeppelin:正在运行,未优化。 我对任何反馈都很感兴趣。 快速开始 克隆项目 git clone https://github.com/kibatic/docker-single-node-hadoop.git 创建容器 docker-compose build ...
总览 该项目介绍了如何使用Apache Spark机器学习创建建议。 您可以在IBM Data Science Experience上运行许多jupyter笔记本,并且可以与电影推荐Web应用程序进行实时演示。 该演示还使用IBM Message Hub(kafka)将...
包括- Wireless Profiles in SOFTWARE registry hive- Wireless SSID from WLAN_AUTOCONFIG Application Event logs- Wireless Diagnostic Event ID 6100 in SYSTEM.EVTX- Wireless Profile Names from SRUM.DAT 要...
大数据实践系列课程中的入门部分。大数据系列课程涉及Hadoop、Hbase、Hive、Spark、Spark SQL、Python数据分析等内容,将会为朋友们详细的做讲解,讲解的视频配有齐全的资料(源码、课程笔记)。
涉及MapReduce、Hdfs、Hive、Kafka、ZooKeeper等hadoop生态圈组件 Coding Now 初衷 一是平时看的一些自己认为不错的文章总是很难整理,所以打算开一个项目管理这些,也可以分享给大家;二是记录自己平时所学的一些...
mkdir -p /tmp/hivedemo/cd big_data_traininghdfs dfs -put -f data /tmp/hivedemo/beeline -u "jdbc:hive2://localhost:10000" -f data/setup_tables.sql练习题 : /蜂巢SQL :如何用Java或Python编写 udf Spark ...
笔记 Hadoop 大数据 卷(大数据量) 种类(数据有许多不同的格式) 速度(速度数据自带) 最好存储所有数据,例如,如果有电话的mp3记录-我们可以进行文本转录,存储和分析,但如果我们也存储原始的mp3,那么就有...