Spark dataframe 学习笔记
前言
在处理PB级的数据时,有时候会使用到pyspark来分析数据,首先贴上官网链接
有问题先去官网看文档!
与pandas的操作对比
df['column1']
df.select('column1')
df.describe()
df.describe('column1','column2').show()
df.columns()
df.columns()
df.column.value_count()
df.groupBy(['column']).count().collect() #collect 为返回一行list
df.column.unique()
df.select('column').distinct().count()
df[df['column'] > 10]
df.filter(df.column > 10).collect()
df.drop_duplicate()
df.dropDuplicates(['name','age']).show()
df['test'].fillna(0)
df.na.fill(0).show()
df.na.fill({
'age':20,'name':'unkown'}).show()
一些apply类似的操作
某一行全加10
df['age'] = df['age']+10
df.select(df.name, (df.age + 10).alias('age')).collect()
下面就不再列pandas对比了,后面慢慢补
df.agg({
'age':'max'}).collect()
df.agg(F,min(df.age)).collect()dfs.filter(df.height.isNull()).collect()
dfs.filter(df.height.isNotNull()).collect()
map
相当于dataframe中的apply,可以对表中的每个元素进行操作
def mapFuction(num:Int):Int={num * num
}
val mapRDD = rdd.map(mapFuction)
也可以参考这篇文章,pands与spark的比较