Guest User

Untitled

a guest
Aug 18th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.34 KB | None | 0 0
  1. import com.datastax.spark.connector.cql.CassandraConnector
  2. import org.apache.spark.{SparkContext, SparkConf}
  3. import org.apache.spark.sql.{Row, SQLContext}
  4.  
  5. /** Spark SQL: Txt, Parquet, JSON Support with the Spark Cassandra Connector */
  6. object SampleJson extends App {
  7.   import com.datastax.spark.connector._
  8.   import GitHubEvents._
  9.  
  10.   val conf = new SparkConf(true)
  11.    /** .set("spark.cassandra.connection.host", "127.0.0.1") */
  12.    /** .setMaster("local[*]") */
  13.     .setAppName("app2")
  14.  
  15.   val sc = new SparkContext(conf)
  16.   val sqlContext = new org.apache.spark.sql.SQLContext(sc)
  17.   val json = sc.parallelize(Seq("""{"user":"helena","commits":98, "month":12, "year":2014}""","""{"user":"pkolaczk", "commits":42, "month":12, "year":2014}"""))
  18.  
  19.   sqlContext.jsonRDD(json).map(MonthlyCommits(_)).saveToCassandra("githubstats","monthly_commits")
  20.  
  21.   sc.cassandraTable[MonthlyCommits]("githubstats","monthly_commits").collect foreach println
  22.  
  23.   sc.stop()
  24. }
  25.  
  26. object GitHubEvents {
  27.  
  28.   sealed trait Stat extends Serializable
  29.   trait User extends Stat
  30.   trait Repo extends Stat
  31.   trait Commits extends Stat
  32.   case class MonthlyCommits(user: String, commits: Int, month: Int, year: Int) extends Commits
  33.   object MonthlyCommits {
  34.     def apply(r: Row): MonthlyCommits = MonthlyCommits(
  35.       r.getString(0), r.getInt(1), r.getInt(2), r.getInt(3))
  36.   }
  37. }
Add Comment
Please, Sign In to add comment