"-6ren">
gpt4 book ai didi

scala - Spark 数据框修剪列并转换

转载 作者:行者123 更新时间:2023-12-04 07:33:49 25 4
gpt4 key购买 nike

在 Scala/Spark 中,如何将空字符串(如“”)转换为“NULL”?需要先修剪它然后转换为“NULL”。谢谢。

dataframe.na.replace("cut", Map(" " -> "NULL")).show //wrong

最佳答案

您可以创建一个简单的函数来执行此操作。首先是几个进口:

import org.apache.spark.sql.functions.{trim, length, when}
import org.apache.spark.sql.Column

和定义:
def emptyToNull(c: Column) = when(length(trim(c)) > 0, c)

最后一个快速测试:
val df = Seq(" ", "foo", "", "bar").toDF
df.withColumn("value", emptyToNull($"value"))

这应该产生以下结果:

+-----+
|value|
+-----+
| null|
| foo|
| null|
| bar|
+-----+

如果你想用 替换空字符串字符串 "NULL您可以添加 otherwise条款:
def emptyToNullString(c: Column) = when(length(trim(c)) > 0, c).otherwise("NULL")

关于scala - Spark 数据框修剪列并转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40445651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com