Как добавить Spark DataFrames в Seq () один за другим в Scala - PullRequest
0 голосов
/ 02 июля 2019

Я создал пустой Seq (), используя

scala> var x = Seq[DataFrame]()
x: Seq[org.apache.spark.sql.DataFrame] = List()

У меня есть функция с именем createSamplesForOneDay(), которая возвращает DataFrame, который я хотел бы добавить к этому Seq () x.

val temp = createSamplesForOneDay(some_inputs) // this returns a Spark DF
x = x + temp // this throws an error 

Я получаю ошибку ниже -

scala> x = x + temp
<console>:59: error: type mismatch;
 found   : org.apache.spark.sql.DataFrame
    (which expands to)  org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]
 required: String
       x = x + temp

То, что я пытаюсь сделать, - это создать Seq() фреймов данных, используя цикл for, и в конце union все они, используя что-то вроде этого -

val newDFs = Seq(DF1,DF2,DF3)
newDFs.reduce(_ union _)

как упомянуто здесь - scala - Spark: как объединить все данные в цикле

1 Ответ

1 голос
/ 02 июля 2019

вы не можете добавить в список с помощью +, вы можете добавить его так:

x = x :+ temp

Но так как у вас есть список, вам лучше добавить свои элементы:

x = temp +: x 

Вместо того, чтобы добавлять элементы один за другим, вы можете написать это более функционально, если вы также упакуете свои входные данные в последовательность:

val inputs = Seq(....) // create Seq of inputs

val x = inputs.map(i => createSamplesForOneDay(i))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...