Har*_*rma 3 amazon-s3 apache-spark parquet spark-structured-streaming
我正在使用Spark Structured Streaming的流查询使用以下代码将镶木地板文件写入S3:
ds.writeStream().format("parquet").outputMode(OutputMode.Append())
.option("queryName", "myStreamingQuery")
.option("checkpointLocation", "s3a://my-kafka-offset-bucket-name/")
.option("path", "s3a://my-data-output-bucket-name/")
.partitionBy("createdat")
.start();
Run Code Online (Sandbox Code Playgroud)
我在s3存储桶中获得了所需的输出,my-data-output-bucket-name但是与输出一起得到了其中的_spark_metadata文件夹。如何摆脱它?如果无法摆脱它,如何将其位置更改为其他S3存储桶?
我的理解是,它是不是能够达到2.3星火。
元数据目录的名称始终为_spark_metadata
_spark_metadata目录始终位于path选项指向的位置
我认为“修复”的唯一方法是报告Apache Spark的JIRA中的问题,并希望有人可以解决。
DataSource请求该流以创建流查询的接收器并采用该path选项。这样,就可以创建FileStreamSink。该path选项仅成为写入结果以及元数据的basePath。
您会发现初始提交对于理解元数据目录的用途非常有用。
为了在正确维护一次语义的同时正确处理部分故障,会将每个批处理的文件写到唯一目录中,然后原子地附加到元数据日志中。在
DataSource初始化基于拼花的地板以进行读取时,我们首先检查该日志目录,并使用它代替存在的文件列表。