我正在編寫一個代碼來使用spark SQLContext JDBC連接來緩存RDBMS數據。一旦創建了Dataframe,我想用apache點燃來緩存reusltset,從而使其他應用程序能夠使用結果集。這是代碼片段。如何在Apache中緩存數據幀ignot
object test
{
def main(args:Array[String])
{
val configuration = new Configuration()
val config="src/main/scala/config.xml"
val sparkConf = new SparkConf().setAppName("test").setMaster("local[*]")
val sc=new SparkContext(sparkConf)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val sql_dump1=sqlContext.read.format("jdbc").option("url", "jdbc URL").option("driver", "com.mysql.jdbc.Driver").option("dbtable", mysql_table_statement).option("user", "username").option("password", "pass").load()
val ic = new IgniteContext[Integer, Integer](sc, config)
val sharedrdd = ic.fromCache("hbase_metadata")
//How to cache sql_dump1 dataframe
}
}
現在的問題是如何緩存一個數據幀,IgniteRDD有savepairs方法,但它接受鍵和值RDD [整數],但我有一個數據幀,即使我將其轉換成RDD我只會越來越RDD [行]。由Integer的RDD組成的savepairs方法似乎更具體什麼如果我有一串RDD作爲值?緩存數據幀或其他更好的方法來緩存結果集是好事。
嘿Vignesh,你有沒有得到任何其他解決方案呢?或者你只採取以下方法? – Kalpesh