通过使用 Scala 仅选择每第 n 个元素来减小 Spark Dataframe 的大小

Reduce size of Spark Dataframe by selecting only every n th element with Scala

我得到了一个 org.apache.spark.sql.Dataframe = [t: double, S: long]

现在我想每第二个元素减少 Dataframeval n=2

结果应该是

你会如何解决这个问题?

我尝试插入第三列并使用取模,但我无法解决。

如果我对你的问题的理解正确,你想保留 dataframe 中的每个 nth 元素并删除所有其他行。假设 t 不是您的 row index,添加一个索引行,然后按以下条件过滤它:

import org.apache.spark.sql.expressions._

val n = 2
val filteredDF = df.withColumn("index", row_number().over(Window.orderBy(monotonically_increasing_id))).filter($"index" % n === 0)