改组文件和数据文件在工人的块管理器文件夹中存储多长时间?(spark-a0ab5241-1b5e-4c73-93ed-f37bbc479591)
我有一个火花流作业,其窗口持续时间为2小时,幻灯片间隔为15分钟。
当我在块管理器路径中执行以下命令时
find . -type f -cmin +150 -name "shuffle*" -exec ls {} \; //command to find the shuffle files older than 2 hours
Run Code Online (Sandbox Code Playgroud)
我看到很多文件,这意味着它们没有被清除,而我期望它们会被清除。甚至还有昨天的文件。
随后,此大小不断增加并占用磁盘空间。
请建议如何摆脱这种情况,并帮助您理解这种行为。
我正在使用 Spark 流将聚合输出作为镶木地板文件写入使用 SaveMode.Append 的 hdfs。我创建了一个外部表,如:
CREATE TABLE if not exists rolluptable
USING org.apache.spark.sql.parquet
OPTIONS (
path "hdfs:////"
);
Run Code Online (Sandbox Code Playgroud)
我的印象是,在外部表的情况下,查询也应该从新添加的镶木地板文件中获取数据。但是,似乎新写入的文件没有被提取。
每次删除并重新创建表都可以正常工作,但不是解决方案。
请建议我的表如何也有来自较新文件的数据。