scala - 如何将 Dstream 或 RDD 的内容附加到现有输出文件 - Spark Streaming
问题描述
我正在研究简单的 SparkStreaming wordcount 示例,以计算从侦听 TCP 套接字的数据服务器接收到的文本数据中的字数。我想将每个不为空的 Dstream 的内容保存到现有的文本文件中。目前,我正在使用 Spark Shell。这是我的代码
我已经尝试过这段代码,它可以工作,但它会覆盖当前文件:
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.storage.StorageLevel
import org.apache.log4j.{Level, Logger}
Logger.getRootLogger.setLevel(Level.WARN)
val ssc = new StreamingContext(sc, Seconds(2))
val lines = ssc.socketTextStream("localhost", 9999, StorageLevel.MEMORY_AND_DISK_SER)
lines.foreachRDD{ rdd => if (!rdd.isEmpty)
//.% to check if the Dstream is empty or not
{
rdd.saveAsTextFile("/stream_test/testLine.txt")
}
}
ssc.start()
感谢您的宝贵帮助
解决方案
推荐阅读
- reactjs - React Router 4 在谷歌缓存上显示 404 页面
- android - 在两个片段之间传递参数,每个片段在不同的导航图中
- java - 如何以正确的方式在 JavaFX 中实现启动和暂停功能?
- angular - Angular 6 mat-table 使用带有 flex 的粘性列不起作用
- upgrade - 升级到typo3 8.7.20 后,Typolinks 目标不起作用
- laravel - 如何通过 Eloquent Laravel 使用 1query 获取包括我的推文在内的推文?
- mongodb - 使用 mongodb 聚合 groupby
- ios - 无法将“__NSCFString”类型的值转换为“NSDictionary”
- android - SharedPreferences 如何一个接一个地处理多个 .apply() 调用?
- react-native - 无法在 React 本机默认项目中将类作为函数调用