我刚接触Spark,希望在Pyspark中计算整数取模的额外列。但我没有找到内置运算符中有此运算符。
有人有任何想法吗?
我刚接触Spark,希望在Pyspark中计算整数取模的额外列。但我没有找到内置运算符中有此运算符。
有人有任何想法吗?
您可以像在普通的Python中一样,在列之间简单地使用%
运算符:
from pyspark.sql.functions import col
df = spark.createDataFrame([(6,3), (7, 3), (13,6), (5, 0)], ["x", "y"])
df.withColumn("mod", col("x") % col("y")).show()
#+---+---+----+
#| x| y| mod|
#+---+---+----+
#| 6| 3| 0|
#| 7| 3| 1|
#| 13| 6| 1|
#| 5| 0|null|
#+---+---+----+
或者,您可以使用Spark内置函数mod
或%
运算符与SQL语法:
from pyspark.sql.functions import expr
# using mod function
df.withColumn("mod", expr("mod(x, y)")).show()
# using SQL %
df.withColumn("mod", expr("x % y")).show()