Spark dataframe нужно проверять значения строк - PullRequest
0 голосов
/ 29 апреля 2018

У меня мало опыта в PySpark

Мне нужно проверить в Spark Dataframe, сколько значений превышает определенный порог (абсолютный) в строке. Я попробовал это, и это не работает

n = lit(len(df.columns))
rank= (reduce(add, (1 for x in df.columns[1:] if abs(col(x)) > threshold))).alias(rank)

1 Ответ

0 голосов
/ 29 апреля 2018

Вы не можете использовать условные выражения Python здесь. Вместо этого используйте when / otherwise ( искровой эквивалент IF, затем ELSE ).

from pyspark.sql.functions import abs, col, when

reduce(
    add, 
    [when(abs(col(x)) > threshold, 1).otherwise(0) for x in df.columns[1:]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...