pyspark创建的dataframe和普通pandas dataframe有很多容易使用上容易混淆的地方,特来梳理记录下。
一、pandas dataframe特有的用法
data1.show(行数) 展示表结构和数据
二、pyspark dataframe特有的用法
1、新增一列分配唯一切递增的id
df.withColumn('new_id',fn.monotonically_increasing_id()).show()
三、两者相同用法的
1、describe()
2、head(行数) 查看前多少行
四、两者用法不同的
1、查看数据
1)data1.shape / data1.count()
2)统计指定列的行数以及去重后的行数
import pyspark.sql.functions as fn
data2.agg(fn.count('id').alias('count'),fn.countDistinct('id').alias('distinct')).show()
data2.select([c for c in df.columns if c != 'id']).distinct().count()
2、根据指定列删除重复数据:不指定列则用全部列
1)data1.drop_duplicates(subset=['id'])
2)data2.dropDuplicates(subset=['id'])
3、空值填充,一般根据稀疏特征和离散特征分别处理
1)data1.replace('nan','-1').fillna('-1')
2)data2.fillna({"country": "China"}) //字典类型
4、空值过滤
2)data2.filter(data2["country"].isNotNull())
或者 data2[data2["country"].isNotNull()]
5、过滤数据
1)
2)