Как я могу рассчитать по модулю в Pyspark? - PullRequest
0 голосов
/ 12 февраля 2020

Я новичок в мире Spark, и я хотел бы рассчитать дополнительный столбец с целыми числами по модулю в Pyspark. Я не нашел этот оператор в встроенных операторов.

У кого-нибудь есть идеи?

1 Ответ

3 голосов
/ 13 февраля 2020

Вы можете просто использовать оператор % между столбцами, как в обычном режиме 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|
#+---+---+----+

В качестве альтернативы, вы можете использовать встроенную функцию искры 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...