2017-10-28 63 views
1
只选择每n个元素减少星火据帧的大小

I V有一个org.apache.spark.sql.Dataframe = [t: double, S: long]通过使用Scala

enter image description here

现在我想通过每2元,以减少据帧,与val n=2

结果应该是

enter image description here

你会如何解决这个问题?

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

回答

1

如果我正确理解您的问题,您希望保留您的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) 
+0

感谢ü非常感谢!这正是我想要实现的! – Masi