【发布时间】:2019-07-18 18:46:05
【问题描述】:
我使用的是 spark 2.1.2。
我正在处理日期时间数据,并希望使用 spark sql 函数从 dt 字符串中获取年份。
我使用的代码如下:
import org.apache.spark.sql.functions._
import org.apache.spark.sql._
import org.apache.spark.sql.types._
val spark: SparkSession = SparkSession.builder().
appName("myapp").master("local").getOrCreate()
case class Person(id: Int, date: String)
import spark.implicits._
val mydf: DataFrame = Seq(Person(1,"9/16/13")).toDF()
val select_df: DataFrame = mydf.select(unix_timestamp(mydf("date"),"MM/dd/yy").cast(TimestampType))
select_df.select(year($"date")).show()
在上面的示例中,我希望日期的年份为 13。
实际:org.apache.spark.sql.AnalysisException:无法解析'date'给定的输入列:[CAST(unix_timestamp(date, MM/dd/yy) AS时间戳)];;
'项目[年('日期)AS年(日期)#11]
【问题讨论】:
标签: scala apache-spark apache-spark-sql