我正在研究一个项目,该项目可以从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)
请多多关照,谢谢您的帮助