2015-05-20 48 views
1

我遇到過一種情況,我想在Spark和/或Spark Streaming管道(Java中)中執行「查找」。查找有點複雜,但幸運的是,我有一些現有的Spark管道(可能是DataFrame),我可以重複使用。是否可以從任務中獲取和使用JavaSparkContext?

對於每個傳入記錄,我想潛在從任務啓動spark任務以獲取必要的信息來裝飾它。

考慮到性能影響,這個有沒有是一個好主意?

沒有考慮性能影響,這甚至有可能嗎?

回答

1

是否有可能從一個任務中獲取和使用JavaSparkContext?

不是。火花上下文只對驅動程序有效,而Spark將阻止它的序列化。因此無法在任務中使用Spark上下文。

對於每個進入的記錄,我想可能從任務啓動火花工作 以獲取必要的信息,以裝飾它。 考慮到性能影響,這是否會是一個好的 想法?

如果沒有更多的細節,我的傘的答案是:可能不是一個好主意

沒有考慮性能影響,這甚至有可能嗎?

是的,可能是通過使基地收集到的驅動程序(collect),並遍歷它。如果該集合不適合司機的記憶,請先前的觀點。

如果我們需要處理每條記錄,請考慮使用'decorating'數據集執行某種形式的join - 這將只是一個大型工作,而不是大量的小型工作。

相關問題