“withColumn”的Spark Date列初始值设定项?

时间:2018-05-10 19:06:22

标签: apache-spark

Scala 2.11在这里。我有以下数据库表:

[input]
===
id BIGINT UNSIGNED NOT NULL,
name VARCHAR(50) NOT NULL,
rank INT NOT NULL

我使用以下Spark代码阅读:

val inputDf = sqlContext().read
    .format("blah whatever")
    .option("url", "jdbc://blah://whatever")
    .option("query", "SELECT * FROM input WHERE id < 500")
    .load()

但是我希望我的inputDf包含数据库中不存在的新列lastRanOn,它将是一个Java Date,其值为当前时间(所以new Date())。我能想出的最接近的是:

inputDf.withColumn("lastRanOn", new Date())

然而,这给了我编译错误:

  

“类型不匹配,预期:列,实际:日期”

我有什么想法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:2)

第二个参数必须是Column。您可以使用current_date

import org.apache.spark.sql.functions.current_date

inputDf.withColumn("lastRanOn", current_date)