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

Mas*_*asi 2 scala apache-spark apache-spark-sql apache-zeppelin

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

在此处输入图片说明

现在我想通过每个第二个元素减少数据val n=2

结果应该是

在此处输入图片说明

你将如何解决这个问题?

我通过插入第三列并使用模数来尝试它,但我无法解决它。

vde*_*dep 6

如果我正确理解您的问题,您希望保留每个nth元素dataframe并删除每隔一行。假设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)
Run Code Online (Sandbox Code Playgroud)