博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Log Analysis - DataFrame
阅读量:7211 次
发布时间:2019-06-29

本文共 904 字,大约阅读时间需要 3 分钟。

一、获取DataFrame型的日志数据

1、读入数据:使用 SparkSession 以文本形式读入日志,数据类型:string

from pyspark.sql import SparkSessionspark = SparkSession \    .builder \    .appName("Python Spark Log Analysis") \    .getOrCreate()base_df =  spark.read.text(log_file_path)

2、抽取字段:pyspark.sql.functions 中 regexp_extract() 直接从文本抽取所需字段,cast() 对字段定义数据类型, alias() 对字段命名。

3、数据清洗:isNull() 判断抽取内容是否为空(Null), pyspark.sql.functions 中 col ,sum函数统计各列缺失个数,filter() 过滤满足现有正则表达式的数据 df.rlike(),判断缺失数据,可使用 fillna() 进行填充。

4、解析日期:① 自定义一个转化函数,将时间字符串转化为格式为:[dd/mmm/yyyy:hh:mm:ss (+/-)zzzz] 的字符串,② 使用 pyspark.sql.functions 中 udf() 函数注册 udf ,将转化的列改为时间戳类型。

二、日志分析

DataFrame型的数据,可以使用 pyspark.sql.functions 模块内的函数对数据进行分析,也可以与 pandas dataframe 公用许多方法。

分析内容与RDD版相似。

常用方法:

  • withColumn() 增加列,withColumnRenamed() 对列重命名
  • 做可视化,toPandas() 先将结果由 spark DataFrame 转成 pandas DataFrame,之后使用 matplotlib 绘图
  • groupBy() 对数据分组聚合

 

转载于:https://www.cnblogs.com/colorfulday/p/10854294.html

你可能感兴趣的文章
如何为运行的 ARM Linux 启用 LAD2.3 版本的诊断扩展
查看>>
Express+Socket.IO 实现简易聊天室
查看>>
Hadoop学习之路(十三)MapReduce的初识
查看>>
java 实现类似于python requests包的Session类,自动管理cookie。
查看>>
Dubbo简介2
查看>>
cityspace
查看>>
springboot项目中jdk版本的问题
查看>>
c#之多线程之为所欲为
查看>>
将SSM架构中原来关于springSecurity3.x版本的写法配迁移到SpringBoot2.0框架中出现的问题解决记...
查看>>
SpringBoot自定义Filter
查看>>
localStorage使用总结,页面跳转,保存值
查看>>
数据结构2 - 线性表
查看>>
[CF Skills]如何在预定的时间运行你的程序
查看>>
matlab练习程序(图像放大/缩小,放大没有进行插值操作)
查看>>
在 C++Builder 工程里调用 DLL 函数
查看>>
JQuery 中简单的几个 类选择器 使用方法
查看>>
Python学习笔记(十)—— 高级特性
查看>>
oracle约束的相关总结
查看>>
解决Eclipse java build path中Web App Libraries无法自动找到WEB-INF的lib目录
查看>>
AjaxPro使用说明
查看>>