Как добиться внедрения кода во время выполнения: Scala - PullRequest
0 голосов
/ 23 октября 2018

Я хочу написать функцию Scala, такую ​​как

def functionA(objectMap:Map[String, ClassB], statements: List[String]): ClassB = {
  var retObj = new ClassB
  retObj = statements
  return retObj
}

Входные данные этой функции:

1) objectMap (Map [String, ClassB)], то есть Map, имеющая objectIdentifier в качестве ключаи объект в качестве значения, например

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

2) операторов (List [String]), который представляет собой Scala-код, полученный из конфигурации, такой как

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

Теперь, что я хочу от функции A, этоанализировать операторы, заменять заполнители, такие как "<object*>", из реального объекта, взятого из objectMap, и выполнять операторы.

Как можно добиться того же?

Scala Version: 2.11
Spark: 2.2.1

1 Ответ

0 голосов
/ 25 октября 2018

Я добился того же, используя https://stackoverflow.com/a/52986351/811602,, но для этого я создал целый класс, заглушил его с помощью переданных операторов и загрузил его во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...