使RDD具有值列表,它們是正數和負數的組合。 需要根據這些數據計算週期數。Spark和Scala中正數和負數混合的值列表中的循環數
例如,
val range = List(sampleRange(2020,2030,2040,2050,-1000,-1010,-1020,Starting point,-1030,2040,-1020,2050,2040,2020,end point,-1060,-1030,-1010)
在上述列表中的每個值之間的間隔爲1秒。即2020年和2030年以1秒爲間隔記錄等等。
從負數變爲正數並保持正數> 2秒的次數。
如果> = 2秒這是一個週期。
循環次數:邏輯
實施例1:列表(1,2,3,4,5,6,-15,-66)
週期的編號爲。
原因:當我們從列表的第一個元素移動到第六個元素時,我們有5個間隔,這意味着5秒。所以一個週期。 當我們移動到列表的第6個元素時,它是一個負值。所以我們從第6個元素開始計數並移動到第7個元素。負值僅爲2,間隔僅爲1.因此,不計爲循環。
實施例2:
列表(11,22,33,-25,-36,-43,20,25,28)
週期號是。
原因:當我們從列表的第一個元素移動到第三個元素時,我們有2個間隔,這意味着2秒。所以一個週期當我們移動到列表的第四個元素時,它是一個負值。所以我們從第四元素開始計算,移動到第五元素,第六元素。我們有2個間隔,這意味着2秒。所以一個週期當我們移動到列表的第7個元素時,它是一個正值。所以我們從第7個元素開始計數,移動到第8個元素,第9個元素。我們有2個間隔,這意味着2秒。所以一個週期。
範圍是用例中的RDD。它看起來像
斯卡拉>範圍
範圍:序號[com.Range] =名單(XtreamRange(858890899920,StartEngage,-758,-790,-890,-720,920,940,950))
看起來應該是在這裏循環右'-1020,2050,2040,2020,'? – Brian
它是一個示例數據。列表中的值是隨機的,沒有模式。 val range = list(17850,17860,17859,17870,-17860,-17859,-17870,2020,2030,2040,2050,-1000,-1010,-1020,-1030,2040,-1020,2050,2040 ,2020,-1060,-1030,-1010) – Phani
週期總是被定義爲正值兩秒?或者可能會有所不同? –