RDD是跨羣集節點分區的元素的集合。它是核心組件和抽象。Spark中的RDD和批處理之間的區別?
批次: SparkStreaming API只是簡單地將數據分成批次,批量處理同樣的Streaming對象/元素集合。根據需求定義一組批次,格式爲,基於時間的批次窗口和密集在線基於活動的批量窗口。
Rdd &準確的批次是多少?
RDD是跨羣集節點分區的元素的集合。它是核心組件和抽象。Spark中的RDD和批處理之間的區別?
批次: SparkStreaming API只是簡單地將數據分成批次,批量處理同樣的Streaming對象/元素集合。根據需求定義一組批次,格式爲,基於時間的批次窗口和密集在線基於活動的批量窗口。
Rdd &準確的批次是多少?
一批實質上是一個RDD,但是在Streaming中,您通常不是在RDD上運行,而是在DStream上運行,它們提供了所提及的基於時間和基於窗口的功能。你必須使用foreachRDD明確地下潛到RDD。
DStream是描述流式作業的抽象概念。在運行時,DStream被轉換爲RDD,因爲Spark Streaming在Spark Core上運行,而Spark只知道如何處理RDD。這就是爲什麼它不是真正的流處理,而是微處理。
RDD
s和批次本質上是不同的,但在Spark中是相關的東西。 正如問題中提到的那樣,RDD
是一個基本的Spark概念,因爲它們構成了Spark中分佈式計算的基礎數據結構。
RDD[T]
s是分佈在集羣中的分區上的[T]
類型的元素的虛擬集合。
在Spark Streaming中,「批處理」是在batchInterval
時間內收集數據的結果。數據以「塊」形式收集,塊的大小由配置參數spark.streaming.blockInterval
確定。
將這些塊提交給Spark Core引擎進行處理。每個批次的塊集合成爲一個RDD
,每個塊是一個RDD分區。
說批次和RDD
是同一件事是不正確的。 Spark Streaming批處理數據在提交給Spark Core進行處理時成爲RDD。
Spark和Spark Streaming(微批處理)的體系結構的基本區別在於。您可能知道,對於離線處理,您不需要Spark Streaming - 這是爲了在線處理數據或在數據到達時創建的,並且這被視爲對小批量數據的連續批量計算。
Spark的創建者決定提供一個名爲DStreams(離散化流)的抽象。這些在內部被表示爲在每個時間步驟到達的RDD序列(例如,0.5秒) - 它們中的每一個都具有流中數據的一個時間片。在每個時間間隔(例如,0.5秒)的開始時創建新的批次 - 當新數據到達時,這屬於該批次 - 直到它結束增長。
從高層角度來看,DStreams提供與RDD相同的操作,但它們提供了與時間相關的其他方法(如滑動窗口)。
PS:我現在看到了YouTube的鏈接。我想這是最好的答案 - 它會徹底解釋你想知道的內容:)
在這裏爲什麼批次進入圖片,乳清不是它被認爲是RDD。這意味着RDD不支持流式處理?我可以考慮收集批次是RDD嗎? RDD的順序是DStreaming? –