pyspark入门学习:创建DataFrame、增、删、改等

最近数据机太大,用pandas处理耗时太久,于是用学习pyspark处理数据。

pyspark创建Dataframe

from pyspark import SparkConf
from pyspark.sql import SparkSession
from pyspark.sql import functions as fn
from pyspark.sql import Window
from pyspark.sql.functions import current_date
from pyspark.sql.functions import datediff
from pyspark.sql.functions import lit
from pyspark.sql.functions import col,when, max
# 创建一个SparkSession对象
conf = SparkConf().setAppName("spark_1").setMaster("local[2]")
ss = SparkSession.builder.config(conf=conf).getOrCreate()
# 创建DateFrame
df1 = ss.createDataFrame([
    ("may", '2020-10-13', 5000, "F",), ("may", '2020-11-12', 8800, "F"), ("may", '2020-12-15', 6000, "F"),
    ("donce", '2020-10-10', 1800, "M"), ("donce", '2020-11-10', 6600, "M"), ("donce", '2020-12-10', 8800, "M")],
    ("name", "date", "exp", 'sex'))
print(df1.show())

在这里插入图片描述

增、删、改等相关语法

1.按照条件增加一列
print(df1.withColumn('sex_id', fn.when(col('sex') == 'M', 1).otherwise(0)).show())

在这里插入图片描述

print(df1.withColumn('exp_id', when(col('exp') <= 2000, 1)
                     .when((col('exp') > 2000) & (col('exp') <= 6000), 2)
                     .otherwise(3)).show())

在这里插入图片描述

2.新增一列自定义的,并删除'sex'print(df1.withColumn('current', lit(current_date())).drop('sex').show())
print(df1.withColumn('学位', lit('硕士')).drop('sex').show())

在这里插入图片描述

3.窗口函数实现
window = Window.partitionBy("name").orderBy(df1["exp"].desc())
df2 = df1.withColumn('topn', fn.row_number().over(window))
print(df2.show())

在这里插入图片描述

4.选择top1的exp
 print(df2.where(df2.topn<=1).show())

在这里插入图片描述
年前学习留下的小笔记,明年争取更多时间学习,提升自己!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值