从dayofyear函数返回null - Spark SQL

时间:2017-07-10 07:10:21

标签: scala function apache-spark null apache-spark-sql

我是Databricks&的新手。星火/斯卡拉。 我正在研究一台学习销售预测的机器。 我使用函数dayofyear来创建功能。 唯一的问题是返回null值。 我尝试使用这个csv,因为我正在使用另一个,我认为这可能来自于此。 但显然,我错了。 我阅读了有关此功能的文档,但描述非常简短。 我尝试了dayofmonth或weekofyear,同样的结果。

你能解释一下我如何解决这个问题吗?我做错了什么?

val path = "dbfs:/databricks-datasets/asa/planes/plane-data.csv"
val df = sqlContext.read.format("csv")
  .option("header", "true")
  .option("inferSchema", "true")
  .load(path)

display(df)
import org.apache.spark.sql.functions._

val df2 = df.withColumn("dateofyear", dayofyear(df("issue_date")))
display(df2)

结果如下:Result

1 个答案:

答案 0 :(得分:0)

您可以在使用issue_date函数之前将timestamp强制转换为dayofyear

data.withColumn("issue_date", unix_timestamp($"issue_date", "MM/dd/yyyy").cast(TimestampType))
      .withColumn("dayofyear", dayofyear($"issue_date"))

希望这有帮助!