【博学谷学习记录】超强总结,用心分享| Spark SQL函数定义

本文详细介绍了Spark SQL中的窗口函数及其使用,包括row_number(), rank(), dense_rank()等,并探讨了SQL函数的三大分类:UDF、UDAF和UDTF。此外,文章还讨论了为何需要自定义函数,特别是在Python中使用Spark SQL时面临的效率问题,以及如何通过Arrow框架和pandas自定义函数来提升性能。最后,展示了如何在Python中创建并注册自定义Spark SQL函数。" 119131103,10540295,光学系统像差模拟与测量技术,"['光学系统', '像差模拟', '光学测量', 'MTF测量', '光学设计']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 如何使用窗口函数

窗口函数格式:

分析函数 over(partition by xxx order by xxx [asc|desc] [rows between xxx and xxx])

学习的相关分析函数有那些?

第一类: row_number() rank() dense_rank() ntile()

第二类: 和聚合函数组合使用 sum() avg() max() min() count()

第三类: lag() lead() first_value() last_value()

SQL中: 与HIVE中应用基本没啥区别, 更多关注的是DSL写法

from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession
import pyspark.sql.functions as F
from pyspark.sql import Window as win
import os

# 锁定远端环境, 确保环境统一
os.environ['SPARK_HOME'] = '/export/server/spark'
os.environ['PYSPARK_PYTHON'] = '/root/anaconda3/bin/python3'
os.environ['PYSPARK_DRIVER_PYTHON'] = '/root/anaconda3/bin/python3'

if __name__ == '__main__':
    print("演示: 如何在Spark SQL中使用窗口函数...")

    # 1- 创建SparkSession对象
    spark = SparkSession.builder.appName('df_write').master('local[*]').getOrCreate()

    # 2-读取外部文件的数据
    df = spark.read.csv(
        path='file:///export/data/workspace/ky06_pyspark/_03_SparkSql/data/pv.csv',
        header=True,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值