PySpark 操作函数一览

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

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).
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值