Spark dataframe 学习笔记

本文介绍如何使用 Spark DataFrame 进行大规模数据处理,包括数据选择、过滤、聚合等常见操作,并对比 Pandas 的相应功能。

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的比较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值