【发布时间】:2019-11-28 06:32:26
【问题描述】:
我在 Java 中有一个 Spark 行数据集,看起来像这样。
+-------+-------------------+---------------+----------+--------------------+-----+
|item_id| date_time|horizon_minutes|last_value| values|label|
+-------+-------------------+---------------+----------+--------------------+-----+
| 8|2019-04-30 09:55:00| 15| 0.0|[0.0,0.0,0.0,0.0,...| 0.0|
| 8|2019-04-30 10:00:00| 15| 0.0|[0.0,0.0,0.0,0.0,...| 0.0|
| 8|2019-04-30 10:05:00| 15| 0.0|[0.0,0.0,0.0,0.0,...| 0.0|
我想过滤 Dataframe 以仅获取月份在整数列表中的那些行(例如 1、2、5、12)
我试过基于字符串的过滤功能
rowsDS.filter("month(date_time)" ???)
但我不知道如何包含整数条件的“isin 列表”。
我也尝试通过 lambda 函数进行过滤,但没有成功。
rowsDS.filter(row -> listofints.contains(row.getDate(1).getMonth()))
Evaluation failed. Reason(s):
Lambda expressions cannot be used in an evaluation expression
有什么简单的方法可以做到这一点吗?我最好使用 lambda 函数,因为我不太喜欢 SparkSQL 的基于字符串的过滤器,例如第一个示例。
【问题讨论】:
标签: apache-spark apache-spark-sql apache-spark-mllib