Spark SQL: Comment faire pour ajouter une nouvelle ligne à dataframe de table (à partir d'une autre table)

Je suis en utilisant Spark SQL avec dataframes. J'ai une entrée dataframe, et je tiens à ajouter (ou insert) ses lignes à un plus grand dataframe qui a plus de colonnes. Comment dois-je procéder?

Si c'était SQL, je voudrais utiliser INSERT INTO OUTPUT SELECT ... FROM INPUT, mais je ne sais pas comment le faire avec Spark SQL.

Pour le concret:

var input = sqlContext.createDataFrame(Seq(
(10L, "Joe Doe", 34),
(11L, "Jane Doe", 31),
(12L, "Alice Jones", 25)
)).toDF("id", "name", "age")
var output = sqlContext.createDataFrame(Seq(
(0L, "Jack Smith", 41, "yes", 1459204800L),
(1L, "Jane Jones", 22, "no", 1459294200L),
(2L, "Alice Smith", 31, "", 1459595700L)
)).toDF("id", "name", "age", "init", "ts")
scala> input.show()
+---+-----------+---+
| id|       name|age|
+---+-----------+---+
| 10|    Joe Doe| 34|
| 11|   Jane Doe| 31|
| 12|Alice Jones| 25|
+---+-----------+---+
scala> input.printSchema()
root
|-- id: long (nullable = false)
|-- name: string (nullable = true)
|-- age: integer (nullable = false)
scala> output.show()
+---+-----------+---+----+----------+
| id|       name|age|init|        ts|
+---+-----------+---+----+----------+
|  0| Jack Smith| 41| yes|1459204800|
|  1| Jane Jones| 22|  no|1459294200|
|  2|Alice Smith| 31|    |1459595700|
+---+-----------+---+----+----------+
scala> output.printSchema()
root
|-- id: long (nullable = false)
|-- name: string (nullable = true)
|-- age: integer (nullable = false)
|-- init: string (nullable = true)
|-- ts: long (nullable = false)

Je voudrais ajouter toutes les lignes de input à la fin de output. En même temps, je voudrais mettre l' output colonne de init être une chaîne vide '' et la ts colonne à le timestamp actuel, par exemple 1461883875L.

Toute aide serait appréciée.

Par la voie, pour la distribution de données il n'existe pas de "début" ou "fin", vous oubliez de l'index. En outre, en utilisant vars en Scala est connu comme une mauvaise pratique. Qu'est-ce que la valeur par défaut pour ts dans le schéma de vous montrer qu'il n'est pas nullable

OriginalL'auteur stackoverflowuser2010 | 2016-04-28