Scala DataStream API: 将字符串集合输出到文件
假设已经引入了必要的包和创建了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()
解释:
-
首先,我们创建一个PrintWriter对象output,用于输出数据到指定文件。
-
接着,创建一个StreamingContext对象streamContext,指定数据流的批次大小为1秒。
-
然后,我们创建一个集合数据源strStream。
-
使用foreachRDD方法,对每个RDD中的元素执行输出操作。
-
在foreachRDD中,我们使用collect方法将RDD中的元素收集到Driver进程中,再对每个元素执行输出操作。
-
最后,启动流式处理并等待处理完成,然后关闭PrintWriter对象output。
原文地址: https://www.cveoy.top/t/topic/ozjG 著作权归作者所有。请勿转载和采集!