【发布时间】:2017-06-03 14:33:18
【问题描述】:
我正在尝试从数据集过滤器中对象的时间戳列中提取日期。我想找到所有在 2010 年登录过的人
class Person{
String name;
Timestamp loggedat;
}
List<Person> persons;
Dataset<Person> ds = spark.createDataset(
persons,
Encoders.bean(Person.class)
);
ds.select(to_date(ds.col("loggedat"),"y")==2010);
此选择似乎不起作用。请帮助了解如何从时间戳中提取年份并过滤掉数据。
【问题讨论】:
-
要获取年份部分,您应该通过
"yyyy"。并且由于您将其与 2010 年进行比较,我想您需要在过滤条件下进行,而不是选择。 to_date 函数参考spark.apache.org/docs/2.0.2/api/java/org/apache/spark/sql/… -
如果要提取年份,可以使用年份函数吗? spark.apache.org/docs/2.0.2/api/java/org/apache/spark/sql/…
-
@RajatMishra - 添加“yyyy”不起作用。它说方法 to_Date 未定义
-
@RajatMishra 成功了,我忘记导入 import static org.apache.spark.sql.functions.*;
标签: java apache-spark dataset spark-dataframe