pyspark dataframe求均值,排序

问题描述

dataframe展示
在这里插入图片描述

希望对总面积,客厅面积等求均值

中间曲折

在网上找了很多资料,感觉rdd进行map,reduce可以完成,转化成rdd
,
每一个属性进行map,reduce,这样汇总求均值并排序,但是发现这样做太麻烦了,但是网上我没找到相关教程,于是我在库中寻找dataframe相关方法。结果让我找到了。

相关方法

1、summary()函数

suammary 函数可用于dataframe求均值,方差,最大值最小值等等
可填入参数

‘max’ 所选dataframe的最大值
’mean‘ 平均值
‘min’ 最小值
stddev" 样本标准差
‘count’ 总的个数
’25%‘ 百分比的任意近似百分位数。’25%‘是个例子

实例

train_data.select('总面积','客厅面积','卧室面积','总价/万元','单价').summary().show()

select挑选哪些列,然后这些列进行summary()函数
运行结果:

在这里插入图片描述

summary()方法源码展示


                
### 关于头歌实践教学平台上的 PySpark 实践 #### 数据预处理与 PCA 应用实例 在 Spark MLlib 中,PCA(主成分分析)是一种常用的降维技术。下面展示如何利用 PySpark 对输入数据执行 PCA 并获取预期输出的结果。 ```python from pyspark.ml.feature import PCA from pyspark.ml.linalg import Vectors from pyspark.sql import Row, SparkSession spark = SparkSession.builder.appName("PCADemo").getOrCreate() # 创建样本数据集 data = [ Row(features=Vectors.dense([1.6485728230883807, -4.013282700516296, -5.524543751369388])), Row(features=Vectors.dense([-4.645104331781534, -1.1167972663619026, -5.524543751369387])), Row(features=Vectors.dense([-6.428880535676489, -5.337951427775355, -5.524543751369389])) ] df = spark.createDataFrame(data) # 设置 k 值为 2 进行 PCA 计算 pca = PCA(k=2, inputCol="features", outputCol="pcaFeatures") model = pca.fit(df) result = model.transform(df).select("pcaFeatures") result.show(truncate=False)[^1] ``` 此代码片段展示了如何创建一个简单的 DataFrame 来模拟给定的数据结构,并应用 PCA 转换来提取主要特征向量。最终通过 `show` 方法打印转换后的结果。 #### 数据去重操作示例 对于需要去除重复记录的任务,在 PySpark 中可以借助内置函数轻松完成: ```python rdd = sc.parallelize([(1,), (2,), (3,), (1,), (2,)]) distinct_rdd = rdd.distinct() print(distinct_rdd.collect()) ``` 这段代码实现了基本的 RDD 去重功能[^2]。 #### 排序并整合数据的操作方法 当涉及到对分布式集合中的元素按照特定键排序时,可采用如下方式: ```python pairs = sc.parallelize([(1, 'a'), (2, 'b'), (3, 'c'), (1, 'd')]) sorted_pairs = pairs.sortByKey().collect() for pair in sorted_pairs: print(pair) ``` 上述例子说明了怎样基于键来整理和排列数据项。 #### 均值的应用场景 计算一组数值型字段均值的过程相对简单明了: ```python nums = sc.parallelize([1, 2, 3, 4]) mean_value = nums.mean() print(mean_value) ``` 这里给出了解一系列整数平均值得具体做法。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值