我的Databricks社区集群上的文件太多,但是在哪里?

问题描述

我开始在Community Edition Databricks上使用流式播放,但是在产生测试事件几分钟后,我遇到了一些问题。我认为这与流传输过程中产生的一些临时小文件的事实有某种联系。我想找到它们并删除,但是找不到它们存储在哪里。我的例外是

com.databricks.api.base.DatabricksServiceException: QUOTA_EXCEEDED: You have exceeded the maximum number of allowed files on Databricks Community Edition. To ensure free access,you are limited to 10000 files and 10 GB of storage in DBFS. Please use dbutils.fs to list and clean up files to restore service. You may have to wait a few minutes after cleaning up the files for the quota to be refreshed. (Files found: 11492);

我尝试运行一些shell脚本来找出每个文件夹的文件数量,但是不幸的是,我找不到可疑的文件,主要是libusr和其他包含系统或python文件文件夹在那里,找不到我的流式传输可能产生的任何内容。我使用的这个脚本

find / -maxdepth 2 -mindepth 1 -type d | while read dir; do
  printf "%-25.25s : " "$dir"
  find "$dir" -type f | wc -l
done

在哪里可以找到too many files问题的原因?也许它根本没有连接到流媒体吗?

为清楚起见,我没有将许多自定义文件上传/FileStore

解决方法

似乎您只检查了本地文件系统上的文件,而不是DBFS本身。您可以通过在Databricks笔记本中运行以下单元格来查看DBFS:

%sh
fs ls /

或:

%python
dbutils.fs.ls("/")

您可以在此处检查文件,然后使用dbutils.fs.rmfs rm删除它们。另外,请查看DBFS上的/tmp文件夹并删除其中的所有文件。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...