Spark中每列有多个过滤器

时间:2015-08-24 13:39:23

标签: apache-spark

这可能听起来像一个愚蠢的问题,但任何帮助将不胜感激。我正在尝试根据日期列在我的RDD上应用过滤器。

val tran1 = sc
  .textFile("TranData.Dat")
  .map(_.split("\t"))
  .map(p => postran(
    p(0), p(1), p(2), p(3), p(4), p(5), p(6), p(7), p(8),
    p(9).toDouble, p(10).toDouble,p(11).toDouble))

我能够应用如下的单个日期过滤器。

val tran = tran1.filter(x => x.PeriodDate == "2015-03-21 00:00:00.000")

如何为此过滤器添加更多日期?有没有办法可以在变量中读取逗号分隔的日期值,并在filter()中传递该变量?

由于

1 个答案:

答案 0 :(得分:0)

以下SQL:

select * From Table where age in (25, 35, 45) and country in ("Ireland", "Italy")  

可以使用以下Scala编写:

val allowedAges: Seq[Int] = Seq(25, 35, 45)
val allowedCountries: Seq[String] = Seq("Ireland", "Italy")
val result = table.filter(x => (allowedAges.contains(x.age) && allowedCountries.contains(x.country))