3
我有一個數據集正在從多個程序中讀取。而不是每天將這個數據集讀入內存中,是否有一種方法可以讓spark有效地緩存數據集,從而允許任何程序調用它?Spark:在多個程序中緩存RDD/DF
我有一個數據集正在從多個程序中讀取。而不是每天將這個數據集讀入內存中,是否有一種方法可以讓spark有效地緩存數據集,從而允許任何程序調用它?Spark:在多個程序中緩存RDD/DF
RDDS和數據集不能應用程序之間共享(至少,沒有共享存儲官方API)
但是,您可能感興趣的數據網格。看看Apache Ignite。您可以將數據加載到Spark,對其進行預處理並保存到網格。然後,在其他應用程序中,您可以從Ignite緩存中讀取數據。
有一種特殊類型的RDD,名爲IgniteRDD,它允許您像使用其他數據源一樣使用Ignite緩存。當然,像任何其他RDD,它可以轉換爲數據集
這將是這樣的:
val rdd = igniteContext.fromCache("igniteCache")
val dataFrame = rdd.toDF
約IgniteContext和IgniteRDD的更多信息,你可以找到here