pyspark系列文章是本人根据《PySpark实战指南》学习pyspark中学习笔记,这本书是一本译文,有些地方感觉有点小问题,不过在本人的这些笔记中都是亲自测试跑通后的小例子。仅作参考和学习。
在做数据分析等时候,时长会碰到与样本其余数据的分布有显著偏离的数据,这种数据被称为离群值。在普遍的形式中,如果所有的值大致在Q1-1.5IQR和Q3+1.5IQR范围内(IQR指的是四分位范围,定义为上分位与下分位之差,分别为第75个百分位(Q3)和第25个百分位(Q1)),则可以认为没有离群值。
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("dataDeal").getOrCreate()
df_outliers = spark.createDataFrame([
(1, 143.5, 5.3, 28),
(2, 154.2, 5.5, 45),
(3, 342.3, 5.1, 99),
(4, 144.5, 5.5, 33),
(5, 133.2, 5.4, 54),
(6, 124.1, 5.1, 21),
(7, 129.2, 5.3, 42),
], ['id', 'weight', 'height', 'age'])
现在我们可以根据之前的定义来标记离群值。首先计算每个特征的上下截断点。使用.approxQu