В объекте DataFrame
в Apache Spark (я использую интерфейс Scala), если я повторяю его объекты , есть ли способ извлечь значения по имени? Я могу видеть, как сделать некоторые действительно неудобный материал:Apache Spark: получить элементы строки по имени
def foo(r: Row) = {
val ix = (0 until r.schema.length).map(i => r.schema(i).name -> i).toMap
val field1 = r.getString(ix("field1"))
val field2 = r.getLong(ix("field2"))
...
}
dataframe.map(foo)
Я полагаю, что там должен быть лучший способ - это довольно многословен, он требует создания этой дополнительной структуры, и это также необходимо знать типы явно, что если неверно, создаст исключение во время выполнения, а не ошибку времени компиляции.
Я думаю, что это должно быть r.getAs [Любой] ("FIELDNAME") –