Spark2-对于Null/Nan的处理
在Scala中,Double类型的空值保存为NaN,其他保存为null。对于Double可以直接使用:bianliang.isNaN判断其是否是空值,那么在一个多行多列的DataSet或者DataFrame中怎么进行处理呢。
一、几种查找空值的方法
1、Column方法
column.isNull/column.isNotNull/column.isNaN
- df("col1").isNull
- df.filter(df("col1").isNull)就可以获取所有col1列为空值的行了。
- //获取col1字段所有空列
- df.filter(df("col1").isNull).count()
- df.filter(df("col1").isNotNull).count()
2、类sql方法
- //获取col1字段所有空列
- data1.filter("col1 is null").select("col1").limit(10).show
- //获取col1字段的所有非空列
- data1.filter("col1 is not null").select("col1").limit(10).show
- data1.filter("col1 <>''").select("col1").limit(10).show
二、na方法
- val naDF:DataFrameNaFunctions=df.na
调用na方法会返回一个DataFrameNaFunctions。其只有3个方法,drop、fill、replace。
2.1 na.drop方法
2.1.1 删除所有列的空值以及NaN
- val resNull=df.na.drop()
返回一个新DF,剔除了包含空值的行。
2.1.2 删除某一列的空值和NaN
- val res =df.na.drop(Array("col1","col2"))
2.1.3 删除某一列的非空非NaN但是值低于10的。
- df.na.drop(10,Array("col1","col2"))
2.2 na.fill方法
2.2.1 填充所有空值的列
- val res123=df.na.fill("新值")
- val res123=df.na.fill(10)
2.2.2 对指定的空值进行填充
传入一个值,以及所有需要用此值填充的Array,或者使用Map,按照列进行不同填充。
- val res2=data1.na.fill(value="wangxiao111",cols=Array("gender","yearsmarried") )
- val res3=data1.na.fill(Map("gender"->"wangxiao222","yearsmarried"->"wangxiao567") )
2.3 na.replace方法
2.3.1 将指定列的指定值替换为对应的值
- df.na.replace("col1",Map(1->2)) //将col1列的值为1替换为2.
- df.na.replace(Array("col1","col2"),Map(1->2))
- df.na.replace[Int]("col1",Map(1->2))//可以添加泛型,Map中的key和value类型必须与其保持一致。
Spark2-对于Null/Nan的处理的更多相关文章
- js判断undefined类型,undefined,null,NaN的区别
js判断undefined类型 今天使用showModalDialog打开页面,返回值时.当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined 所以自作聪明判断 ...
- Javascript 中的非空判断 undefined,null, NaN的区别
JS 数据类型 在介绍这三个之间的差别之前, 先来看一下JS 的数据类型. 在 Java ,C这样的语言中, 使用一个变量之前,需要先定义这个变量并指定它的数据类型,是整型,字符串型,.... 但是 ...
- (转载)Javascript 中的非空判断 undefined,null, NaN的区别
原文地址:https://blog.csdn.net/oscar999/article/details/9353713 在介绍这三个之间的差别之前, 先来看一下JS 的数据类型. 在 Java ,C ...
- Spark Dataset DataFrame空值null,NaN判断和处理
Spark Dataset DataFrame空值null,NaN判断和处理 import org.apache.spark.sql.SparkSession import org.apache.sp ...
- Spark2 Dataset DataFrame空值null,NaN判断和处理
import org.apache.spark.sql.SparkSession import org.apache.spark.sql.Dataset import org.apache.spark ...
- JavaScript 中undefined,null,NaN的区别
1.类型分析: js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型.var a1;var a2 = true;va ...
- js中undefined,null,NaN的区别
1.类型分析: js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型.var a1;var a2 = true;va ...
- R语言中的特殊值 NA NULL NaN Inf
这几个都是R语言中的特殊值,都是R的保留字, NA:Not available 表示缺失值 用 is.na() 来判断是否为缺失值 NULL:表示空值,即没有内容 用 is.null() 来判 ...
- Objective-C之null NaN undefined
http://blog.csdn.net/siemenliu/article/details/6568306
随机推荐
- Linux下源码安装jdk
1.到官网下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- 转:攻击JavaWeb应用[4]-SQL注入[2]
转:http://static.hx99.net/static/drops/tips-288.html 攻击JavaWeb应用[4]-SQL注入[2] 园长 · 2013/07/18 17:23 注: ...
- List 集合中 均匀的取七个点 的值
场景: 一个未知 长度的 List 集合,可能 长度为7,10,50,100, 等等 这个时候 ,我们需要在 集合中 均匀的取七个点: 思路: n=6; int size = list.Size(); ...
- 445. Add Two Numbers II【Medium】【两个链表求和】
You are given two non-empty linked lists representing two non-negative integers. The most significan ...
- hh:mm:ss时间格式那些事儿
怎么把hh:mm:ss.45 时间格式换算成秒? 比较简单点的格式,比如hh:mm:ss是比较容易的,但是怎么样把hh:mm:ss.45,这样的格式,就是秒不是整数的时间格式换算成秒? ans:将时间 ...
- Linux命令之firewall-cmd
firewall-cmd [选项] firewall-cmd是firewalld守护程序的命令行客户端.它提供了管理运行时和永久配置的接口.firewalld中的运行时配置与永久配置分开.这意味着可以 ...
- grunt-contrib-qunit安装过程中phantomjs安装报错问题解决
今天自己fork了一个github上别人写的一个关于grunt项目的一个小demo(https://github.com/cowboy/jquery-tiny-pubsub),主要是想学习下grunt ...
- vijos1889:天真的因数分解
题目链接 vijos1889:天真的因数分解 题解 同bzoj2440: [中山市选2011]完全平方数 就是改成了求有平方因子数,依旧考虑二分,只是把容斥系数取一下相反数,也就是把莫比乌斯函数求一个 ...
- 【tarjan+缩点】BZOJ1051-受欢迎的牛
[题意] 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎. ...
- bzoj 1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害
1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害 Description Farmer John的农场里有P个牧场,有C条无向道路连接着他们,第i条道路连接着 ...