如何实现运行时代码注入:Scala

时间:2018-10-23 13:22:14

标签: scala apache-spark dataframe

我想编写一个像

这样的Scala函数
def functionA(objectMap:Map[String, ClassB], statements: List[String]): ClassB = {
  var retObj = new ClassB
  retObj = statements
  return retObj
}

此功能的输入是:

1)objectMap(Map [String,ClassB)],这是一个以objectIdentifier作为键,而object作为Value的Map,例如

Map[{"object1": An instance of class ClassB},
    {"object2": An instance of class ClassB},
    {"object3": An instance of class ClassB}]]

2)语句(列表[String]),这是来自类似配置的Scala代码

val tmpOb1 = <object1>.join(<object2>)
val tmpOb2 = <object3>.sum(tmpOb1)

现在我要从functionA中解析语句,从实物对象中替换"<object*>"等占位符,取自objectMap并执行语句。

我怎么能达到同样的目的?

Scala Version: 2.11
Spark: 2.2.1

1 个答案:

答案 0 :(得分:0)

我已经使用https://stackoverflow.com/a/52986351/811602实现了相同的目的,但是同样,我创建了整个类,并使用传递的语句对它进行了存根,并在运行时加载它。