动态ReduceOption

时间:2019-05-14 21:01:51

标签: scala apache-spark apache-spark-sql

我试图以抽象的方式编写代码,其中我在运行时根据用户输入来计算列。 我有一个功能动态减速器

def dynamicReducer(Column:Seq[column], Str:String):Option[Column]={
var Answer:Opton[Column]=Option(col(""))
if (Str=="AND"){
Answer =columns.map(cols=>{cols}).reduceOption(_ &&_)    
}
if (Str=="OR"){
Answer =columns.map(cols=>{cols}).reduceOption(_ || _)    
}
}

这在我的输入是单个String且我可以使用适当的reduceOption返回Seq [Column]时起作用。因此示例输出看起来像这样

(Some(Foo)="bar") AND baz LIKE buzz AND bar in(baz)))

现在我已经进行了更改,以便为dynamicReducer接受String的SEQ,但是我不确定如何使它返回相同的Option [Column]

def dynamicReducer( columns:Seq[column], Str:Seq[String]):Option[Column]={
 val foo = columns.zip(str).flatMap(pair => Seq(pair._1,pair._2))
}

以上返回Seq [Object]如何将其转换为Option [Column]?

0 个答案:

没有答案