Spark dstream写入单个文件

时间:2018-08-13 14:47:13

标签: google-cloud-platform publish-subscribe dstream

我正在研究一个项目,该项目可以从PubSub读取带有火花流的内容,然后将其写入GCP存储桶中的浮动对象。 对于从pubsub主题提取的所有消息,我无法实现对单个文件的写入。 实际上,每个提取的消息都会得到一个文件。 如何实现将所有消息写入一个文件。 以下是我编写的代码:

val outputBucket= "gs://renault-ftt-dev/pubsub/"
    val checkpointDirectory = "gs://renault-ftt-dev/checkpointpubsub"
    ssc.checkpoint(checkpointDirectory)

    val pubsubStream: ReceiverInputDStream[SparkPubsubMessage] = PubsubUtils.createStream(
      ssc, projectId, topic, subscription,
      SparkGCPCredentials.builder.build(), StorageLevel.MEMORY_AND_DISK_SER_2)

    val data = pubsubStream.map(message => new String(message.getData(), StandardCharsets.UTF_8))

    data.foreachRDD { rdd =>
      import sparkSession.implicits._
      val df = rdd.toDF()
      df.write.mode("append").text(outputBucket)

请多多关照,谢谢您的帮助

0 个答案:

没有答案