Spark删除行

时间:2016-08-08 11:33:14

标签: apache-spark pyspark apache-spark-sql rdd spark-dataframe

我有一个包含大约20k行的DataFrame。

我想在数据集中随机删除186行。

要理解上下文 - 我正在测试缺失数据的分类模型,每行都有一个unix时间戳。 186行对应3秒(每秒有62行数据。)

我的目标是,当数据流式传输时,数据很可能会出现 丢失了几秒钟。我正在从时间窗口中提取功能,所以我想看看数据如何影响模型性能。

我认为最好的方法是转换为rdd并使用filter函数,就像这样,并将逻辑放在过滤函数中。

dataFrame.rdd.zipWithIndex().filter(lambda x: )

但是我坚持逻辑 - 我该如何实现呢? (使用PySpark)

1 个答案:

答案 0 :(得分:3)

尝试这样做:

import random
startVal = random.randint(0,dataFrame.count() - 62)
dataFrame.rdd.zipWithIndex()\
             .filter(lambda x: not x[<<index>>] in range(startVal, startVal+62))

这应该有效!