spark2.0 用socket接收数据并处理

本文档展示了如何使用Spark 2.0从TCP Socket接收数据流,并实时计算单词计数。通过创建SparkSession,设置数据源为socket,指定IP和端口,然后对数据进行flatMap和groupBy操作,实现对数据流的处理和分析。最后,讨论了不同的输出模式,包括Complete Mode、Append Mode和Update Mode(后两者在Spark 2.0中有所不同)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假如你想监听一个数据服务器上的TCP Socket来获取源源不断的数据流,同时你想要实时的计算单词的数量。

object SocketComplete {
  def main(args: Array[String]) {
    Logger.getLogger("org").setLevel(Level.WARN)
    //首先,我们需要导入必要的classes,并且创建一个本地运行的SparkSession,它是链接到Spark的程序入口。
    val spark = SparkSession.builder.
      appName("Spark shell").
      getOrCreate()
    import spark.implicits._
    //接收数据类型是socket,IP是slave6,端口号是8008
    val lines: DataFrame = spark.readStream.format("socket").option("host", "192.168.0.56").option("port", 8008).load()
    //这个Lines DataFrame表示了一个包含了流式数据的无边界表。此表包含一列的字符串,名字为value,数据流中的每一行变成了表中的一个Row。
    // 注意,现在还没有接收任何的数据,仅仅是定义了转换操作的流程,并没有启动转换操作。
    // 接下来我们使用lines
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值