У меня есть следующий фрагмент кода PySpark, который всегда работал нормально, кроме сегодняшнего дня:
row_stats = dataframe
.withColumn("exploded" , explode(col("products")))
.withColumn("score", col("exploded").getItem(target_field))
.where(col("score").isNotNull())
.select(mean_(col("score")).alias("mean"),stddev_(col("score")).alias("stddev")).first()
mean = 0
std = 0
if row_stats is not None:
print "row_stats.mean"
print row_stats.mean
mean = Decimal(float(row_stats.mean))
std = Decimal(float(row_stats.stddev))
Я получил ошибку в строке mean = Decimal(float(row_stats.mean))
:
TypeError: float() argument must be a string or a number
Выход print
:
<type 'NoneType'>
None
Как правильно обработать эту ошибку, чтобы mean
и std
были равны 0?