所以這裏是設置。在Java和R應用程序之間使用同一個主機共享SparkContext
目前我有兩個Spark應用程序初始化。我需要在它們之間傳遞數據(最好通過共享的sparkcontext/sqlcontext,這樣我就可以查詢臨時表)。我目前使用Parquet文件進行數據幀傳輸,但有可能採用其他方式嗎?通過終端
MasterURL指向同SparkMaster
開始星火:
/opt/spark/sbin/start-master.sh;
/opt/spark/sbin/start-slave.sh spark://`hostname`:7077
的Java應用程序設置:
JavaSparkContext context = new JavaSparkContext(conf);
//conf = setMaster(MasterURL), 6G memory, and 4 cores.
SQLContext sqlContext = new SQLContext(parentContext.sc());
然後我註冊現有框架以後
//existing dataframe to temptable
df.registerTempTable("table");
和
SparkR
sc <- sparkR.init(master='MasterURL', sparkEnvir=list(spark.executor.memory='6G', spark.cores.max='4')
sqlContext <- sparkRSQL.init(sc)
# attempt to get temptable
df <- sql(sqlContext, "SELECT * FROM table"); # throws the error