Class.forName в касте Spark - PullRequest
       1

Class.forName в касте Spark

0 голосов
/ 24 января 2019

У меня есть функция, которая выглядит так:

private def readDS[T <: Product : TypeTag](path: String): Dataset[T] = {
    spark
       .read
       .csv(path)
       .as[T]
}

T всегда является классом дела

Я пытаюсь получить T, используя

CC = Class.forName ("SomeCaseClass") // где CC (Case Class) должен быть передан как T в функцию readDS, с которой у меня проблема

У меня была идея сделать что-то вроде этого:

CC match {
    case VALIDCC //  check if VALIDCC is a subtype of Product and TypeTag[VALIDCC] is available // => {
        readDS[VALIDCC]("/path/to/file")
    }
    case _ => logger.error("provided class can't be used to cast a DF")

Но я понятия не имею, как сопоставлять типы в scala, а также как проверить, является ли тип подтипом Product, и если неявный val tt = TypeTag [CC] доступен в области применения CC в функции readDS.

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