Skip to content

Instantly share code, notes, and snippets.

@josep2
Last active January 1, 2017 21:28
Show Gist options
  • Save josep2/35dc5d989effab6c104f22f3622ee8f5 to your computer and use it in GitHub Desktop.
Save josep2/35dc5d989effab6c104f22f3622ee8f5 to your computer and use it in GitHub Desktop.
import org.apache.spark.sql._
import spray.json._
import com.couchbase.client.java.query.N1qlQuery
import com.couchbase.spark.connection.CouchbaseConnection
import com.couchbase.spark._
val sparkSession = "..."
import sparkSession.sqlContext.implicits._
case class Settings(color: String, value: String) // Case class for the JSON
object SettingsProtocol extends DefaultJsonProtocol {
implicit val settingsFormat = jsonFormat2(Settings)
}
import SettingsProtocol._
// Set up a NQ1L Query
val query1 = "SELECT * from `settings`"
// Query Couchbase
val data = sparkSession.sparkContext.couchbaseQuery(N1qlQuery.simple(query1))
.collect()
.map(x => x.value.toString)
.map(x => x.parseJson.convertTo[Settings])
sparkSession.sparkContext.parallelize(data).toDS().show()
///DataSet
CouchbaseConnection().stop() // Stop Couchbase
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment