Scala 使用Spark流媒体写入磁盘
我正在尝试使用Spark Streaming中的数据以拼花格式写入磁盘 我使用以下方法获得缓慢的写入结果:Scala 使用Spark流媒体写入磁盘,scala,apache-spark,spark-streaming,Scala,Apache Spark,Spark Streaming,我正在尝试使用Spark Streaming中的数据以拼花格式写入磁盘 我使用以下方法获得缓慢的写入结果: val stream = ssc.receiverStream(...) stream.foreachRDD { rdd => if (rdd.count() > 0) { // Get the singleton instance of SQLContext val sqlContext = SQLContext.getOrCrea
val stream = ssc.receiverStream(...)
stream.foreachRDD { rdd =>
if (rdd.count() > 0) {
// Get the singleton instance of SQLContext
val sqlContext = SQLContext.getOrCreate(rdd.sparkContext)
import sqlContext.implicits._
// Save models in Parquet format.
rdd.toDF()
.write.mode(SaveMode.Append)
.parquet("../myfile")
}
}
我将这与将相同的数据集一次读入内存,然后用Spark一次读入磁盘进行了比较,这与上面使用流方法的情况相反
有人能告诉我原因并给出解决方案吗?你所说的糟糕的书写结果是什么意思?你的流媒体播放间隔是多少?@PatrickMcGloin我已经尝试了1秒到20秒。在任何情况下,它都比使用没有Spark参与的文本文件要花更长的时间来编写。拼花地板是压缩的,所以它应该比文本转储要花更长的时间来编写,或者我认为是这样