StructType из массива - PullRequest
       8

StructType из массива

0 голосов
/ 12 февраля 2019

Что мне нужно сделать?

Создать схему для DataFrame, которая должна выглядеть следующим образом:

root
 |-- doubleColumn: double (nullable = false)
 |-- longColumn: long (nullable = false)
 |-- col0: double (nullable = true)
 |-- col1: double (nullable = true)
...

Столбцы с префиксом col canразличаются по количеству.Их имена хранятся в массиве ar: Array[String].

Моя попытка

val schema = StructType(
    StructField("doubleColumn", DoubleType, false) ::
    StructField("longColumn", LongType, false) ::
    ar.map(item => StructField(item, DoubleType, true)) // how to reduce it?
    Nil
)

У меня проблема с закомментированной строкой (4), я незнать, как передать этот массив.

1 Ответ

0 голосов
/ 12 февраля 2019

Нет необходимости что-либо уменьшать.Вы можете просто добавить список известных столбцов: val

val schema = StructType(Seq(
    StructField("doubleColumn", DoubleType, false),
    StructField("longColumn", LongType, false)
  ) ++ ar.map(item => StructField(item, DoubleType, true))
)

Вы также можете

ar.foldLeft(StructType(Seq(
  StructField("doubleColumn", DoubleType, false), 
  StructField("longColumn", LongType, false)
)))((acc, name) => acc.add(name, DoubleType, true))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...