Эффективное разделение Null-Safe в SparkPython

Программы на Python
Ответить
Anonymous
 Эффективное разделение Null-Safe в Spark

Сообщение Anonymous »

У меня есть преобразование PySpark, которое занимает больше времени, чем я ожидал, и когда я покопался в сроках, я обнаружил, что именно это разделение замедляло весь процесс;
< pre class="lang-py Prettyprint-override">

Код: Выделить всё

df.withColumn(
"null1", F.col("col1").isin([None, float("nan"), 0])
).withColumn(
"null2", F.col("col2").isin([None, float("nan"), 0])
).withColumn(
"ratio",
F.when((F.col("null1") | F.col("null2")), F.lit(None))
.otherwise(F.col("col1") / F.col("col2")),
).drop("null1", "null2")
Кроме этого подразделения, все остальное выполняется быстро; В этом конкретном преобразовании нет объединений, отображений или циклов, которые могли бы замедлить работу.
Мне интересно, есть ли какой-нибудь способ выполнить такую ​​проверку и деление в PySpark, что значительно эффективнее эффективнее, чем то, что у меня здесь? Я попробовал функцию try_divide, но она оказалась не быстрее (и производительность была не такой).
Спасибо за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/791 ... n-in-spark
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»