2017-10-28 99 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