Как добавить новый обнуляемый столбец String в DataFrame, используя Scala - PullRequest
0 голосов
/ 18 октября 2019

Вероятно, есть по крайней мере 10 вопросов, очень похожих на это, но я до сих пор не нашел четкого ответа.

Как я могу добавить строковый столбец, который может быть пустым, в DataFrame, используя scala? Мне удалось добавить столбец с нулевыми значениями, но тип данных показывает нуль

val testDF = myDF.withColumn("newcolumn", when(col("UID") =!= "not", null).otherwise(null))

Однако схема показывает

root
 |-- UID: string (nullable = true)
 |-- IsPartnerInd: string (nullable = true)
 |-- newcolumn: null (nullable = true)

Я хочу, чтобы новый столбец был строкой | - newcolumn: string (nullable = true)

Пожалуйста, не отмечайте как дубликаты, если только это не тот же вопрос и в scala.

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Зачем вам нужен столбец, который всегда равен нулю? Есть несколько способов, я бы предпочел решение с typedLit:

myDF.withColumn("newcolumn", typedLit[String](null))

или для более старых версий Spark:

myDF.withColumn("newcolumn",lit(null).cast(StringType))
1 голос
/ 18 октября 2019

Просто приведите нулевой литерал к StringType.

scala> val testDF = myDF.withColumn("newcolumn", when(col("UID") =!= "not", lit(null).cast(StringType)).otherwise(lit(null).cast(StringType)))

scala> testDF.printSchema

root
 |-- UID: string (nullable = true)
 |-- newcolumn: string (nullable = true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...