根据提示,在右侧 Begin-End 区域补充代码,使用 Spark 结构化流计算从侦听 TCP 套接字的数据服务器接收到的文本数据中的单词数,TCP 服务器端口为 9999,服务器地址为 : 127.0.0.1。
时间: 2024-05-03 12:20:09 浏览: 114
基于TCP的套接字编程
3星 · 编辑精心推荐
下面是代码:
```scala
import org.apache.spark.sql.functions._
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.streaming._
object TCPWordCount {
def main(args: Array[String]) {
val spark = SparkSession.builder
.appName("TCP Word Count")
.getOrCreate()
import spark.implicits._
val lines = spark.readStream
.format("socket")
.option("host", "127.0.0.1")
.option("port", 9999)
.load()
.as[String]
val words = lines.flatMap(_.split(" "))
val wordCounts = words.groupBy("value").count()
val query = wordCounts.writeStream
.outputMode("complete")
.format("console")
.start()
query.awaitTermination()
}
}
```
右侧的 Begin-End 区域应该放这段 Scala 代码,它使用 Spark 结构化流计算从 TCP 服务器接收到的字符串数据中的单词数,然后将结果输出到控制台。
Spark 要求程序运行在集群上,并提供足够的计算资源。如果要在本机上运行,需要下载和安装 Spark,并将代码保存在一个 .scala 文件中,然后运行以下命令:
```
$SPARK_HOME/bin/spark-submit --class TCPWordCount --master local[*] target/scala-2.11/TCPWordCount-assembly-1.0.jar
```
其中,$SPARK_HOME 是 Spark 的安装路径,--class 参数指定要运行的主类,--master 参数指定运行模式(这里使用 local[*] 运行在本机上的所有可用线程),最后一个参数是程序打包成的 jar 文件名。
阅读全文