可能至少有10个问题与此非常相似,但我仍然没有找到明确的答案。
如何使用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)
我希望新列是string |-new column:string(nullable = true)
请不要将其标记为重复,除非它实际上是同一个问题并且在scala中。
为什么需要一个始终为空的列?有几种方法,我更喜欢使用typedLit的解决方案
:
myDF.withColumn("newcolumn", typedLit[String](null))
或对于较旧的Spark版本:
myDF.withColumn("newcolumn",lit(null).cast(StringType))
只需将null文本显式转换为< code>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)
如何在spark数据帧中用空字符串替换空字符串。 我尝试了以下方法: 它抛给我一个错误。
问题内容: 我需要一条SQL更新语句来更新所有行的特定字段,并在现有值的前面添加一个字符串“ test”。 例如,如果现有值为“ try”,则应变为“ testtry”。 问题答案: 您可以使用CONCAT函数来执行此操作: 如果您想更聪明地只更新尚未预先测试的列,请尝试
我尝试在每个“{”之间放置空白: 它适用于一个“{”: 在这里我想要t{estn{g。 谢谢你来看看。
那么,如何使用PySpark向现有的DataFrame添加一个新列(基于Python vector)呢?
我正在使用以下模式从外部源加载数据帧: 现在,我需要添加新列METADATA_PARSED,其中包含列类型数组和以下case类: case类META_DATA_COL(M_1: String,M_2: String,M_3,M_10: String) 基于示例,我这里的方法是创建一个UDF并传递元数据列。但是由于它是一个复杂的类型,我在解析它时遇到了很多困难。 除此之外,对于UDF中的“new”变
问题内容: 如果我有一个字符串变量: 我想在每一个前面加一个转义字符和 变量中 (即 未 竟逃脱字符),我该怎么做? 问题答案: 我不是在这里要求优雅,但我 认为 它可以满足您的要求(如果我误会了,请纠正我): 输出