加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 火花数据框修剪列和转换

发布时间:2020-12-16 19:18:56 所属栏目:安全 来源:网络整理
导读:在 Scala / Spark中,如何将空字符串(如“”)转换为“NULL”?需要先修剪它然后转换为“NULL”.谢谢. dataframe.na.replace("cut",Map(" " - "NULL")).show //wrong 解决方法 您可以创建一个简单的功能来完成它.首先是几个进口: import org.apache.spark.sql
在 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”替换空字符串,则可以添加否则子句:

def emptyToNullString(c: Column) = when(length(trim(c)) > 0,c).otherwise("NULL")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读