[
https://issues.apache.org/jira/browse/SPARK-32640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17179729#comment-17179729
]
Wenchen Fan commented on SPARK-32640:
-------------------------------------
Just checked with Postgres: log('NaN') returns NaN. log(0) or log(-1) fails.
I think it makes sense for Spark to return null for 0 or negative values, but
`log(NaN)` should return NaN.
I don't really know why the behavior was changed. The only change I see is we
use `StrictMath` instead of `Math`, but the doc of `StrictMath` says that NaN
will be returned if input is NaN.
The `log` implementation is:
{code:java}
if (double <= 0.0) return null else return StrictMath.log(double){code}
Maybe it's due to the scala 2.12 upgrade and the result of `NaN <= 0.0` becomes
true?
> Spark 3.1 log(NaN) returns null instead of NaN
> ----------------------------------------------
>
> Key: SPARK-32640
> URL: https://issues.apache.org/jira/browse/SPARK-32640
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 3.1.0
> Reporter: Thomas Graves
> Priority: Major
>
> I was testing Spark 3.1.0 and I noticed that if you take the log(NaN) it now
> returns a null whereas in Spark 3.0 it returned a NaN. I'm not an expert in
> this but I thought NaN was correct.
> Spark 3.1.0 Example:
> >>> df.selectExpr(["value", "log1p(value)"]).show()
> +--------------+-----------------+
> | value| LOG1P(value)|
> +--------------+-----------------+
> |-3.4028235E38| null|
> |3.4028235E38|88.72283906194683|
> | 0.0| 0.0|
> | -0.0| -0.0|
> | 1.0|0.6931471805599453|
> | -1.0| null|
> | NaN| null|
> +--------------+-----------------+
>
> Spark 3.0.0 example:
>
> +-------------+------------------+
> | value| LOG1P(value)|
> +-------------+------------------+
> |-3.4028235E38| null|
> | 3.4028235E38| 88.72283906194683|
> | 0.0| 0.0|
> | -0.0| -0.0|
> | 1.0|0.6931471805599453|
> | -1.0| null|
> | NaN| NaN|
> +-------------+------------------+
>
> Note it also does the same for log1p, log2, log10
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]