SparkR技术问询:如何提取指定列包含NaN值的行
在SparkR中筛选包含NaN值的行
别担心,没怎么用过SparkR也没关系,其实它的筛选逻辑和你熟悉的R有不少相通之处,只是因为SparkDataFrame是分布式的,不能直接用本地data.frame的索引方式而已。
针对你的需求,要筛选Date2列包含NaN值的行,你可以使用SparkR的filter()函数(或者它的别名where()),搭配is.na()函数来实现,代码如下:
# 先确保SparkR会话已初始化(如果还没启动的话) library(SparkR) sparkR.session() # 筛选Date2列值为NaN的行 new_DF <- filter(DF, is.na(DF$Date2)) # 可选:查看筛选后的结果 show(new_DF)
简单解释一下:
is.na(DF$Date2)会返回一个布尔类型的列,标记每一行的Date2是否为NaNfilter()函数会根据这个布尔列的结果,保留值为TRUE的行,也就是Date2为NaN的那些行
如果你习惯用where(),效果是完全一样的:
new_DF <- where(DF, is.na(DF$Date2))
运行这段代码后,你得到的new_DF就会包含原始数据中Date2为NaN的所有行啦。
内容的提问来源于stack exchange,提问作者madsthaks
相关产品推荐
相关产品推荐

