Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

User Tools

Site Tools


en:site:recherche:logiciels:sparqlwithspark:watdivf5

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:site:recherche:logiciels:sparqlwithspark:watdivf5 [14/09/2016 14:56] huberten:site:recherche:logiciels:sparqlwithspark:watdivf5 [16/09/2016 23:07] (current) – [WatDiv Query F5 plans] hubert
Line 1: Line 1:
-====== Query F5 ====== +{{indexmenu_n>3}} 
-SPARQL Hybrid DF plan+ 
 +====== WatDiv Query F5 plans====== 
 + 
 +=== SPARQL Hybrid DF plan === 
 + 
 +<code scala> 
 +// First triple pattern 
 +val retailer = getIdSO("wsdbm", "Retailer3"
 +val idP1 = getIdP("gr", "offers"
 +val s1 = List( 
 +  ("gr","validThrough"), 
 +  ("gr", "includes"), 
 +  ("gr", "price")) 
 +val s2 = List( 
 +  ("og", "title"),  
 +  ("rdf", "type")) 
 + 
 + 
 +val subset = df.where(s"(p=$idP1 and s=$retailer) or p in (3,12,26,38,57)").persist 
 +subset.count  
 +val DATA = subset 
 + 
 +val tp1 = DATA.where(s"s=$retailer").select("o").withColumnRenamed("o","s"
 +val e1 = sc.parallelize(1 to NB_FRAGMENTS, NB_FRAGMENTS).map(x => -1).toDF("s"
 +val tp1a = t1.unionAll(e1) 
 + 
 +val l1 = s1.map{case(ns, p) => { 
 +  val idP = getIdP(ns, p) 
 +  DATA.where(s"p=$idP").select("s","o").withColumnRenamed("o", s"o$idP")}} 
 + 
 +val l2 = s2.map{case(ns, p) => { 
 +  val idP = getIdP(ns, p) 
 +  DATA.where(s"p=$idP").select("s","o").withColumnRenamed("o", s"o$idP")}} 
 + 
 +val v1 = getIdP("gr", "includes"
 +val snf1 = tp1a.join(l1(0),"s").join(l1(1),"s").join(l1(2),"s").withColumnRenamed("s", "v0").withColumnRenamed(s"o$v1","s"
 + 
 +val query = snf1.join(l2(0),"s").join(l2(1),"s"
 + 
 +</code> 
 + 
 +=== S2RDF plan === 
 + 
 +<code scala> 
 +val VP2EXP=VP2Random 
 + 
 +val tp1 = VP2EXP(getIdP("gr", "offers")).where(s"s=$retailer").select("o").withColumnRenamed("o","s"
 + 
 +val l1 = s1.map{case(ns, p) => { 
 +  val idP = getIdP(ns, p) 
 +  VP2EXP(idP).withColumnRenamed("o", s"o$idP")}} 
 + 
 +val v1 = getIdP("gr", "includes"
 +val snf1 = tp1.join(l1(0),"s").join(l1(1),"s").join(l1(2),"s").withColumnRenamed("s", "v0").withColumnRenamed(s"o$v1","s"
 + 
 +val l2 = s2.map{case(ns, p) => { 
 +  val idP = getIdP(ns, p) 
 +  VP2EXP(idP).withColumnRenamed("o", s"o$idP")}} 
 + 
 +val query = snf1.join(l2(0),"s").join(l2(1),"s"
 + 
 +</code> 
 + 
 +=== S2RDF + Hybrid plan === 
 + 
 + 
 +<code scala> 
 +val VP2EXP=VP2Subject
  
-<code> 
 val s1 = List( val s1 = List(
   ("gr","validThrough"),   ("gr","validThrough"),
Line 16: Line 82:
 val e1 = sc.parallelize(1 to NB_FRAGMENTS, NB_FRAGMENTS).map(x => -1).toDF("s") val e1 = sc.parallelize(1 to NB_FRAGMENTS, NB_FRAGMENTS).map(x => -1).toDF("s")
 val tp1a = tp1.unionAll(e1) val tp1a = tp1.unionAll(e1)
- 
  
 val l1 = s1.map{case(ns, p) => { val l1 = s1.map{case(ns, p) => {
Line 32: Line 97:
  
 </code> </code>
 +
 +
 +
 +Go to [[en:site:recherche:logiciels:sparqlwithspark]]
 +
en/site/recherche/logiciels/sparqlwithspark/watdivf5.1473857774.txt.gz · Last modified: by hubert