假设已经引入了必要的包和创建了SparkSession对象,可以使用以下代码:

import org.apache.spark.streaming._
import java.io._

val output = new PrintWriter(new File("/home/hadoop/output.txt"))
val streamContext = new StreamingContext(sparkSession.sparkContext, Seconds(1))
val strStream = streamContext.sparkContext.parallelize(Seq('hadoop is power', 'Spark is Fast', 'Flink is better'))

strStream.foreachRDD(rdd => {
  rdd.collect().foreach(str => {
    output.write(str + "\n")
  })
})

streamContext.start()
streamContext.awaitTermination()
output.close()

解释:

  1. 首先,我们创建一个PrintWriter对象output,用于输出数据到指定文件。

  2. 接着,创建一个StreamingContext对象streamContext,指定数据流的批次大小为1秒。

  3. 然后,我们创建一个集合数据源strStream。

  4. 使用foreachRDD方法,对每个RDD中的元素执行输出操作。

  5. 在foreachRDD中,我们使用collect方法将RDD中的元素收集到Driver进程中,再对每个元素执行输出操作。

  6. 最后,启动流式处理并等待处理完成,然后关闭PrintWriter对象output。

Scala DataStream API: 将字符串集合输出到文件

原文地址: https://www.cveoy.top/t/topic/ozjG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录