PySpark 操作函数一览

本文详细介绍了PySpark中用于处理数据的函数,包括Pyspark.sql.functions模块的基本数学函数、特定类型如日期、字符、二进制、角度、数字及判断函数,以及统计计算和列处理函数。此外,还提到了Pyspark.sql.types中的基础数据类型和叠加类型。
摘要由CSDN通过智能技术生成

PySpark 操作函数一览

Created: Sep 14, 2020 10:28 AM
Tags: Big Data, PySpark, Python, Spark

cover

Pyspark.sql.functions

from pyspark.sql import functions as F

函数使用说明

基本数学函数类

  • abs
  • sincostanasinacosatansinhcoshtanh
  • ceilroundfloor
  • exploglog2powsqrtcbrt
  • factorial

特定类型

日期

  • current_datecurrent_timestampadd_monthsunix_timestamp
df = spark.createDataFrame([('2015-04-08',)], ['dt']
df.select(F.add_months(df.dt, 1).alias('next_month'))

""""
+----------+
|next_month|
+----------+
|2015-05-08|
+----------+
"""
  • add_monthsdate_adddate_formatdate_subdate_truncdate_diff
  • dayofmonthdayofweekdayofyearweekofyear
  • hourlast_dayminutemonthmonths_betweennext_dayyear

字符

  • asciisubstringsubstring_index
  • base64unbase64
  • decodeencode
  • exprconv
  • format_string
  • length
  • lowerupper
  • reverse
  • size

Binary

  • binbitwiseNOT
  • hashmd5sha1sha2
  • hexunhex

角度

  • toDegreestoRadiansradians

数字

  • format_number

判断

  • isnanisnull

统计计算

  • avgcorrcountcountDistinctcume_dist
  • greatestkurtosisvariance
  • maxminmeanrandrandnrank
  • skewnesssumsumDistinct

数组处理

  • flattensliceelement_atarray_contains、array_distinct、array_except、array_intersect、array_join、array_max、array_min、array_position、array_remove、array_repeat、array_sort、array_union、arrays_overlap、arrays_zip
# 数组列包含元素
df = spark.createDataFrame([(["a", "b", "c"],), ([],)], ['data'])
df.withColumn("array_contains", F.array_contains(df.data, "a")).show()

"""
+---------+--------------+
|     data|array_contains|
+---------+--------------+
|[a, b, c]|          true|
|       []|         false|
+---------+--------------+
"""

数组函数说明

df = spark.createDataFrame([(([1, 2, 3], [2, 3, 4]))], ['vals1', 'vals2'])
df.show()
df_new = df.select(F.arrays_zip(df.vals1, df.vals2).alias('zipped'))
df_new
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
PySpark中的UDF(User Defined Function,用户自定义函数)是一种特殊类型的函数,允许我们在Spark DataFrame或SQL中使用自定义的Python函数作为转换操作。UDF可以用于在列级别上执行自定义的计算或转换。 要创建一个UDF函数,可以使用`pyspark.sql.functions.udf`方法,并将Python函数作为参数传递给它。然后,可以将UDF应用于DataFrame的一列或多列。 下面是一个简单的示例,展示了如何使用PySpark的UDF函数: ```python from pyspark.sql import SparkSession from pyspark.sql.functions import udf # 创建SparkSession spark = SparkSession.builder.getOrCreate() # 示例函数:将字符串转换为大写 def to_upper(s): return s.upper() # 注册UDF to_upper_udf = udf(to_upper) # 创建示例DataFrame data = [("John", 25), ("Alice", 30), ("Bob", 35)] df = spark.createDataFrame(data, ["name", "age"]) # 应用UDF到'name'列 df.withColumn("name_upper", to_upper_udf(df["name"])).show() ``` 在上面的示例中,我们首先定义了一个Python函数 `to_upper`,它将字符串转换为大写。然后,我们使用`udf`方法将该函数转换为UDF,并将其命名为`to_upper_udf`。最后,我们将UDF应用于DataFrame的'name'列,并在新列'name_upper'中显示结果。 通过使用UDF函数,我们可以使用自定义的Python代码来扩展和定制Spark的功能,以满足特定的需求。希望这个例子能帮助你了解如何在PySpark中使用UDF函数
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值