Spark将0转换为null

时间:2017-02-10 14:32:19

标签: scala apache-spark cassandra

我在Cassandra有一个表,此表中的一列有一个Double类型,值为0.

当我尝试使用spark读取此数据时:

val dataFromCassandra = sqlContext.read
  .cassandraFormat("table_name", SomeKeyspace)
  .load()

它返回null值而不是0。

请帮助!!!

1 个答案:

答案 0 :(得分:3)

不熟悉Cassandra数据源,但您可以使用null将某个列的所有0替换为某个常量值(例如coalesce):

df.show()
// +---+-----+
// | id|value|
// +---+-----+
// |  1| null|
// |  2| null|
// +---+-----+

df.withColumn("value", coalesce($"value", lit(0.0))).show() 
// +---+-----+
// | id|value|
// +---+-----+
// |  1|  0.0|
// |  2|  0.0|
// +---+-----+