我想保存( parquet
)流的每个值指向一个特定的目录,该目录的路径由键给定。应该有少于五个不同的键,以及许多不同的目录。
由于我没有找到任何我想做的事情的例子,我尝试了以下方法: filter()
流中找到的每个键;代码如下:
stream
.foreachRDD{ (rdd, time) =>
import spark.implicits._
if (rdd.take(1).length != 0) {
val directories= rdd.map(_._1).distinct().collect()
lDates.foreach { directory =>
rdd
.filter(_._1==directory).map(_._2)
.toDF()
.write.format("parquet").mode("append").save(directory)
}
}
}
但是野蛮人 collect()
在计算上付出了沉重的代价,并导致 scheduling delay
...
有没有人有更好的方法来实现这一点或提高性能?
编辑:我没有访问结构化流媒体的权限。
暂无答案!
目前还没有任何答案,快来回答吧!