Создание пустого DF и добавление столбца НЕ работает - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь создать пустой фрейм данных и добавить новый столбец.Я пытался сделать это двумя способами.Вариант А работает, но вариант Б не работает.Пожалуйста, помогите!

Вариант A:

`

var initialDF1 = Seq(("test")).toDF("M") 
initialDF1 = initialDF1.withColumn(("P"), lit(s"P"))
initialDF1.show
+----+---+
|   M|  P|
+----+---+
|test|  P|
+----+---+

`

Вариант B: (не работает)

`

import org.apache.spark.sql.types.{StructType, StructField, StringType}
import org.apache.spark.sql.Row
val schema = StructType(List(StructField("N", StringType, true)))
var initialDF = spark.createDataFrame(sc.emptyRDD[Row], schema)
initialDF = initialDF.withColumn(("P"), lit(s"P"))
initialDF.show
+---+---+
|  N|  P|
+---+---+
+---+---+

`

1 Ответ

3 голосов
/ 17 апреля 2019

Работает по назначению, команда withColumn влияет только на схему и позволяет установить значение для существующих записей (подсвеченных или других вычислений), но это будет применяться только к существующим строкам.Во втором случае вы создали пустой фрейм данных.withColum выполняет итерацию и добавляет «P» к любой существующей строке (нет ..)

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