rga*_*ber 3 scala date apache-spark
我正在努力学习Spark。我有一个org.apache.spark.sql.Column正在阅读的DataFrame. 然后我尝试使用列上的条件来过滤它:
val resultDataFrame = dataFrame.filter(col("DATECOL") >= date)
Run Code Online (Sandbox Code Playgroud)
正在DATECOL被读取DataTypes.DateType到数据帧中。date是一个我必须硬编码的变量。
我想弄清楚的是如何定义date,即如何创建 a 的实例DataTypes.DateType或从 a 左右转换为它的实例String,以便我可以运行上面的表达式。我尝试使用 aString并且它没有给出错误,但它返回时没有结果。
您可以将其设为java.sql.Date:
val df = Seq(("2016-10-10", 2), ("2017-02-02", 10)).toDF("DATECOL", "value")
val df1 = df.withColumn("DATECOL", to_date($"DATECOL"))
// df1: org.apache.spark.sql.DataFrame = [DATECOL: date, value: int]
df1.show
+----------+-----+
| DATECOL|value|
+----------+-----+
|2016-10-10| 2|
|2017-02-02| 10|
+----------+-----+
val date = java.sql.Date.valueOf("2016-11-01")
// date: java.sql.Date = 2016-11-01
df1.filter($"DATECOL" > date).show
+----------+-----+
| DATECOL|value|
+----------+-----+
|2017-02-02| 10|
+----------+-----+
Run Code Online (Sandbox Code Playgroud)