我们有一个scala函数,可根据年份选择文档,即
def keepDate(date: String, component: DateComponent = DateComponent.YYYYMMDD) = {
rdd.filter(r => ExtractDate(r.getCrawlDate, component) == date)
}
它在像这样的代码中使用,它起作用:
.keepDate("2007", YYYY)
然而,我们想要做的是允许多重匹配 - 即一些变体:
.keepDate("2007", "2010", YYYY)
到目前为止,我尝试这样做的尝试都失败了。我们使用的确切语法并不重要,但任何指导都会非常感激。
答案 0 :(得分:2)
我会采用多种参数列表:
def keepDate(component: DateComponent = DateComponent.YYYYMMDD)(dates: String*) = {
rdd.filter(r => dates.contains(r => ExtractDate(r.getCrawlDate, component)))
}
使用它是这样的:
keepDate(YYYY)("2010", "2012)
如果日期的数量足够大,请考虑使用Set[String]
代替varargs(这会更冗长,但效率更高)。
答案 1 :(得分:0)
.keepDate(List("2007", "2010"), YYYY)
现在你可以像这样使用它,
public abstract class BaseService<T>
{
public abstract void Read(T param);
}