Apache spark Spark删除行
我有一个包含大约20k行的数据帧 我想在数据集中随机删除186行 为了理解上下文,我正在测试一个缺失数据的分类模型,每一行都有一个unix时间戳。186行对应于3秒(每秒有62行数据) 我的目标是,当数据流化时,数据很可能会 失踪几秒钟。我正在从一个时间窗口提取特征,所以我想看看丢失的数据是如何影响模型性能的 我认为最好的方法是转换成Apache spark Spark删除行,apache-spark,pyspark,apache-spark-sql,rdd,spark-dataframe,Apache Spark,Pyspark,Apache Spark Sql,Rdd,Spark Dataframe,我有一个包含大约20k行的数据帧 我想在数据集中随机删除186行 为了理解上下文,我正在测试一个缺失数据的分类模型,每一行都有一个unix时间戳。186行对应于3秒(每秒有62行数据) 我的目标是,当数据流化时,数据很可能会 失踪几秒钟。我正在从一个时间窗口提取特征,所以我想看看丢失的数据是如何影响模型性能的 我认为最好的方法是转换成rdd并使用filter函数,类似这样的函数,并将逻辑放在filter函数中 dataFrame.rdd.zipWithIndex().filter(lambda
rdd
并使用filter
函数,类似这样的函数,并将逻辑放在filter函数中
dataFrame.rdd.zipWithIndex().filter(lambda x:)
但我被逻辑所束缚——我如何实现这一点?(使用PySpark)尝试这样做:
import random
startVal = random.randint(0,dataFrame.count() - 62)
dataFrame.rdd.zipWithIndex()\
.filter(lambda x: not x[<<index>>] in range(startVal, startVal+62))
随机导入
startVal=random.randint(0,dataFrame.count()-62)
dataFrame.rdd.zipWithIndex()\
.过滤器(λx:不在范围内的x[](startVal,startVal+62))
这应该管用 嘿@Thiago,还有一个后续问题。我想按一列进行筛选,例如,我的一列是时间戳,以删除10秒的行。我试图在范围(startVal,startVal+10)中添加
.filter(“timestamp”)以删除10秒,但无效。您的列是Int吗?或者是一种时间戳类型的数据帧?它是一个int(将它从unix时间戳转换为除以1000)。因为它是时间序列数据,一秒钟内有许多列,所以按计数删除将不起作用。