Почему NULL преобразуется в -1,0 в наборе данных Spark - PullRequest
0 голосов
/ 12 октября 2018

У меня есть следующий Dataframe:

val df = Seq(
  ("a",Some(1.0)),
  ("b",None),
  ("c",Some(3.0))
).toDF("id","x")

df.show()

+---+----+
| id|   x|
+---+----+
|  a| 1.0|
|  b|null|
|  c| 3.0|
+---+----+

Затем я делаю

df.as[(String,Double)]
.collect
.foreach(println)

(a,1.0)
(b,-1.0) <-- why??
(c,3.0)

Итак, ноль преобразуется в -1.0, почему это так?Я ожидал, что он будет сопоставлен с 0.0.Интересно, что это действительно так, если я это сделаю:

df
.select($"x")
.as[Double]
.collect
.foreach(println)

1.0
0.0
3.0

Я знаю, что в моем случае отображение на Option[Double] или java.lang.Double - это путь, но я все равно был бы заинтересован в пониманиичто делает искра с ненулевыми типами, такими как Double.

Кстати, я использую Spark 2.1.1 с Scala 2.10.6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...