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:utility

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:utility [15/09/2016 15:37] huberten:site:recherche:logiciels:sparqlwithspark:utility [16/09/2016 23:05] (current) – [Utilities] hubert
Line 6: Line 6:
 === Data loading utilities=== === Data loading utilities===
  
-<code>+<code scala>
  
 // TIMER // TIMER
Line 73: Line 73:
 === QUERY utilities === === QUERY utilities ===
  
-<code>+<code scala>
 case class v(n:Int) case class v(n:Int)
  
Line 86: Line 86:
 } }
  
- +// encode properties and literals in a query
-// encode property and literal+
 def sparqlEncode(splittedSparql: List[(Any, (String, String), Any)]): List[(Any, Int, Any)]  = {  def sparqlEncode(splittedSparql: List[(Any, (String, String), Any)]): List[(Any, Int, Any)]  = { 
   return splittedSparql.map{ case (s,(ns,p),o) =>    return splittedSparql.map{ case (s,(ns,p),o) => 
                           val idP = getIdP(ns, p)                           val idP = getIdP(ns, p)
-                          (s,o) match { +                          (s, o) match { 
-                            case(a:v, b:v)=> (a, idP, b) +                            case(v(a), v(b))=> (v(a), idP, v(b)
-                            case(lit:String, b:v) => { val idLit = getIdSO(lit.split(":")(0), lit.split(":")(1))   +                            case(lit:String, v(b)) => { val idLit = getIdSO(lit.split(":")(0), lit.split(":")(1))   
-                                                        (idLit, idP, b)} +                                                        (idLit, idP, v(b))} 
-                            case(a:v,lit:String)  => { val idLit = getIdSO(lit.split(":")(0), lit.split(":")(1))   +                            case(v(a), lit:String)  => { val idLit = getIdSO(lit.split(":")(0), lit.split(":")(1))   
-                                                        (a, idP, idLit)}+                                                        (v(a), idP, idLit)}
 }}} }}}
  
  
 +// generate selection operator for each triple pattern
 def tpOperators(encodedQuery: List[(Any, Int, Any)], d: Map[Int, DataFrame]) =  def tpOperators(encodedQuery: List[(Any, Int, Any)], d: Map[Int, DataFrame]) = 
 encodedQuery.map{ case(v(a), p, v(b))=> ( (v(a), p, v(b)), d(p).withColumnRenamed("o", s"v$b")) encodedQuery.map{ case(v(a), p, v(b))=> ( (v(a), p, v(b)), d(p).withColumnRenamed("o", s"v$b"))
en/site/recherche/logiciels/sparqlwithspark/utility.1473946664.txt.gz · Last modified: by hubert