Scala 如何获取DynamicRecord字段值,使用该值进行匹配,然后更新DynamicRecord
新的Scala与AWS胶水。我要做的是在动态记录中获取一个字段的值,这样我就可以使用它来匹配,然后更新记录,然后返回它 在下面的代码中,我想首先使用以下命令获取字段值:Scala 如何获取DynamicRecord字段值,使用该值进行匹配,然后更新DynamicRecord,scala,aws-glue,Scala,Aws Glue,新的Scala与AWS胶水。我要做的是在动态记录中获取一个字段的值,这样我就可以使用它来匹配,然后更新记录,然后返回它 在下面的代码中,我想首先使用以下命令获取字段值:rec=>rec.getField(col) 因此,我可以在继续匹配之前测试该值 这是我目前拥有的,它按原样工作 def doSomething(col: String): DynamicRecord => DynamicRecord = { rec => rec.getFi
rec=>rec.getField(col)
因此,我可以在继续匹配之前测试该值
这是我目前拥有的,它按原样工作
def doSomething(col: String): DynamicRecord => DynamicRecord =
{
rec => rec.getField(col) match
{
case Some(s: String) =>
{
//do something with s to the record (rec)
}
case default => do something with default case to the record (rec)
}
rec
}
注意,由于我直接使用rec
进行匹配,因此我可以进一步更新它
但我需要先获取值,然后匹配,最后返回更改的记录。下面类似的东西。但是因为我使用字段值进行匹配,所以我不再引用案例中的rec
def doSomething(col: String): DynamicRecord => DynamicRecord =
{
var fldVal: String = ""
rec => fldVal = rec.getField(col)
fldVal match
{
case Some(s: String) =>
{
//do something to the record with s
}
case default => //do something to the record with default case
}
rec //need to return record here
}
如何首先从rec获取字段值,然后引用rec,以便更改并返回它
我收到的错误有,缺少参数类型,类型不匹配
谢谢你的帮助
谢谢 你的描述有点混乱。看起来你想要的是这样的东西
def doSomething(col: String): DynamicRecord => DynamicRecord =
rec => {
rec.getField(col) match {
case Some(s: String) =>
//do something to the record with s
case default =>
//do something to the record with default case
}
rec //need to return record here
}
如果是这样的话,我可能会建议进行以下简化
def doSomething(col: String): DynamicRecord => DynamicRecord =
rec => rec.getField(col).fold {
//return rec modified with default case
} { s =>
//return rec modified with s
}