Log Analysis - DataFrame

一、获取DataFrame型的日志数据

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

from pyspark.sql import SparkSession

spark = 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值