PySpark 操作函数一览
Created: Sep 14, 2020 10:28 AM
Tags: Big Data, PySpark, Python, Spark
Pyspark.sql.functions
from pyspark.sql import functions as F
函数使用说明
基本数学函数类
abs
sin
、cos
、tan
、asin
、acos
、atan
、sinh
、cosh
、tanh
ceil
、round
、floor
exp
、log
、log2
、pow
、sqrt
、cbrt
factorial
特定类型
日期
current_date
、current_timestamp
、add_months
、unix_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_months
、date_add
、date_format
、date_sub
、date_trunc
、date_diff
dayofmonth
、dayofweek
、dayofyear
、weekofyear
hour
、last_day
、minute
、month
、months_between
、next_day
、year
字符
ascii
、substring
、substring_index
base64
、unbase64
decode
、encode
expr
、conv
format_string
length
lower
、upper
reverse
size
Binary
bin
、bitwiseNOT
、hash
、md5
、sha1
、sha2
hex
、unhex
角度
toDegrees
、toRadians
、radians
数字
format_number
判断
isnan
、isnull
统计计算
avg
、corr
、count
、countDistinct
、cume_dist
greatest
、kurtosis
、variance
max
、min
、mean
、rand
、randn
、rank
skewness
、sum
、sumDistinct
数组处理
flatten
、slice
、element_at
、array_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