栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

pyspark学习41:计算皮尔森相关系数、协方差、查看行数和描述性统计信息、更改列名、删除列

pyspark学习41:计算皮尔森相关系数、协方差、查看行数和描述性统计信息、更改列名、删除列

对应视频40、41

课件3.3

启动pyspark:

pyspark --master spark://hadoop101:7077  --executor-memory 950m  --executor-cores 2

读取hdfs上的文件创建一个dataframe

>>>df = spark.read.csv('/sql/customers.csv',header=True)

1、查看行数

2、查看数据的格式

>>> df.dtypes

计算相关性系数之前,需要将数据格式转换为int,因为读取时候映射的是sting格式

>>>pdf = df.toPandas()    # 将df转换为pandas的dataframe,注意Anaconda2-4.2.0里边的                                                       pandas版本过低不支持该语句。

3、转换格式

>>> pdf['Age'] = pdf['Age'].astype('int')
>>> pdf["Annual Income (k$)"]=pdf["Annual Income (k$)"].astype('int')

>>>pdf["Spending Score (1­100)"]=pdf["Spending Score (1­100)"].astype('int') #可能因为字段名太长的原因,这一句执行失败,"Spending Score (1­100)"字段没有成果转换

转换以后: 

 也可以直接在spark的df上转换数据类型,如下:

df.select(df.Age.cast('int'),df["Spending  Score  (1-100)"].cast('int'),df["Annual  Income (k$)"].cast("int")).dtypes

>>> df1 = spark.createDataframe(pdf)  #创建spark的dataframe名为df1

>>> df1.corr("Age","Annual Income (k$)") #计算"Age","Annual Income (k$)"的相关系数

 >>>pdf.columns=['CustomerID ','Genre'  ,'Age','Annual Income (k$)','Spending'] #把"Spending Score (1­100)"修改字段名为'Spending',这里必须把所有字段名列出来

再次转换'Spending'的格式 

4、计算相关系数

>>> df1 = spark.createDataframe(pdf)
>>> df1.corr("Spending","Annual Income (k$)")  #皮尔森相关系数

df1.cov("Age","Annual Income (k$)")   #计算两列的协方差

 

 5、df.describe(*cols)查看指定列的描述性统计信息,包括基本的统计信息,包括数量、最大值、最小值、均值及标准差,不指定参数会默认计算所有列的描述统计信息。

>>> df.describe('Age')
Dataframe[summary: string, Age: string] 

>>> df.describe('Age').show()

 df.describe('Age','Genre').show() 

#由于Genre(性别)的格式是string因此mean、stddev的值为null

 >>> df.describe().show()

 6、drop(*cols)按照列名删除df中的列,返回新的Dataframe

df1 = df.drop('Age')

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/285844.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号