【问题标题】:Spark converts 0 to nullSpark 将 0 转换为 null
【发布时间】:2017-02-10 23:24:40
【问题描述】:

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

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

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

它返回 null 值而不是 0。

请帮忙!!!

【问题讨论】:

  • 使用火花 1.6
  • 能否在数据框中显示该列的类型(dataFromCassandra.printSchema() 的结果)?
  • 类型是双倍的。

标签: scala apache-spark cassandra


【解决方案1】:

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

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|
// +---+-----+

【讨论】:

  • 它有帮助,tnx 你
猜你喜欢
  • 2017-01-10
  • 2014-09-12
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 1970-01-01
相关资源
最近更新 更多