通过使用 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]
现在我想每第二个元素减少 Dataframe,val 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)
我得到了一个 org.apache.spark.sql.Dataframe = [t: double, S: long]
现在我想每第二个元素减少 Dataframe,val 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)