/**
* Created by root on 9/8/15.
*/
import org.apache.spark._
import org.apache.spark.rdd.RDD
import org.apache.spark.streaming._
import org.apache.spark.sql.SQLContext object SparkStreamingTest {
def main(args: Array[String]) {
//create a local StreamingContext with two working thread and batch interval of 1 second.
val conf = new SparkConf().setAppName("Spark streaming test").setMaster("local[2]")
val ssc = new StreamingContext(conf, Seconds(10))
//val sc = ssc.sparkContext
val lines = ssc.socketTextStream("localhost", 9999)
val words = lines.flatMap(_.split(" ")) //word count
val pairs = words.map(word => (word, 1))
val wordCounts = pairs.reduceByKey(_ + _)
wordCounts.print() //convert spark streaming to sparksql
words.foreachRDD((rdd: RDD[String], time: Time) => {
val sqlContext = SQLContextSingleton.getInstance(rdd.sparkContext)
import sqlContext.implicits._
val wordsDataFrame = rdd.map(w => Record(w)).toDF()
wordsDataFrame.registerTempTable("words")
val wordsCountDataFrame = sqlContext.sql("select word, count(*) as total from words group by word")
println(s"======================= $time =======================")
wordsCountDataFrame.show()
}) ssc.start()
ssc.awaitTermination()
}
} case class Record(word: String) object SQLContextSingleton {
@transient private var instance: SQLContext = _
def getInstance(sparkContext: SparkContext): SQLContext = {
if (instance == null) {
instance = new SQLContext(sparkContext)
}
instance
}
}

最新文章

  1. Unity3D Editor 扩展
  2. Spring Cloud 配置服务
  3. JS 动画基础
  4. 一篇不错的讲解Java异常的文章(转载)
  5. busybox filesystem httpd php-5.5.31 sqlite3 webserver
  6. 【STL源码学习】STL算法学习之二
  7. 原生js操作cookie
  8. jQuery 分割按钮(Split Button)
  9. Android加载图片OOM错误解决方式
  10. Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型
  11. 【转】Tomcat7.0.42源代码运行环境搭建
  12. 如何连接远程redis,并且选择某个库进行操作
  13. 使用JavaScript 操作本地文件
  14. 火狐兼容window.event.returnValue=false;
  15. 项目Alpha冲刺(团队)-第五天冲刺
  16. Alpha(3/10)
  17. <? extends T>和<? super T>的理解
  18. winform 查找控件并获取特定类型控件
  19. Expo大作战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式
  20. shell 循环语句

热门文章

  1. 《Python基础教程(第二版)》学习笔记 -> 第八章 异常
  2. 【原】Storm分布式RPC
  3. Kindle Paperwhite 2使用体验
  4. Spring Framework 中启动 Redis 事务操作
  5. SRM 502 DIV1 500pt(DP)
  6. [COCOS2D-X]AssetsManager
  7. Linux下文件的权限
  8. Linux下python升级步骤
  9. UIImageView旋转任意角度---实现方法
  10. BZOJ 2243: [SDOI2011]染色 (树链剖分+线段树合并)