将流另存为元素路径给定的Parquet

lfapxunr  于 2021-05-29  发布在  Spark
关注(0)|答案(0)|浏览(202)

我想保存( 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 ...
有没有人有更好的方法来实现这一点或提高性能?
编辑:我没有访问结构化流媒体的权限。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题