我有一个 Spark 结构化流:
val df = spark
.readStream
.format("kafka")
.option("kafka.bootstrap.servers", "localhost:9092")
.option("startingOffsets", "earliest")
.option("endingOffsets", "latest")
.option("subscribe", "topic")
.load()
我想使用 DataStreamWriter 将数据写入文件系统,
val query = df
.writeStream
.outputMode("append")
.format("parquet")
.start("data")
但是在
data
中创建了零文件文件夹。只有 _spark_metadata
正在创建。但是,当
format
时,我可以在控制台上看到数据是 console
:val query = df
.writeStream
.outputMode("append")
.format("console")
.start()
+--------------------+------------------+------------------+
| time| col1| col2|
+--------------------+------------------+------------------+
|49368-05-11 20:42...|0.9166470338147503|0.5576946794171861|
+--------------------+------------------+------------------+
我无法理解其背后的原因。
Spark - 2.1.0
最佳答案
我有一个类似的问题,但出于不同的原因,在这里发布以防有人遇到同样的问题。将输出流以带水印的附加模式写入文件时,结构化流有一个有趣的行为,即在时间段早于水印时间之前,它实际上不会写入任何数据。如果您正在测试结构化流媒体并且有一个小时长的水印,那么至少一个小时内您将看不到任何输出。
关于scala - 无法使用 Spark Structured Streaming 在 Parquet 文件中写入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44187987/