快速获取文件夹的文件数
Quickly get file count of folder
我有一份 Pentaho 作业,在其中一个 运行 信息中,我想获取文件夹中的文件数。我尝试了两种不同的方法,但都花了 2 分钟多的时间来执行。我想知道是否有一个步骤可以用来以更有效的方式执行此操作。
方法 1 - 获取文件行数 -> 设置变量
在我的获取文件行计数步骤中,我有目录和通配符 (.*.xml) 来获取文件夹中 xml 文件的计数。在内容选项卡中,我将文件计数保存到一个字段 (fileCount),然后将其保存到一个变量。对于包含 3,722 xml 个文件的文件夹,它需要 2:15 到 运行。
方法 2 - 获取文件名 -> 分组依据 -> 设置变量
通过这种方法,我有一个与步骤 'Get File rows count' 类似的设置,但是在我使用类型 'Number of rows (without field argument)' 进行分组操作之后。此方法 运行 在 2:30 中适用于相同的 3,722 个文件。
我认为这些花费了很长时间,因为它试图将文件放入内存,但我只关心计数。希望看到一种方法来计算。
Get Files Rows count 步骤将计算每个文件中的每一行,所以它很慢也就不足为奇了。
使用获取文件名步骤,无论文件大小如何,都应该非常快。幸运的是,我准备了一个装满 XML 文件的文件夹,所以这是一张截图(在我笔记本电脑上的 linux 虚拟机中)
如果您在使用此步骤时仍然遇到问题,请首先确保您已从转换中删除其他输入步骤,因为它们仍然 运行 并且可能会产生干扰。其次,检查防病毒软件是否在 Spoon 访问文件的元数据时尝试扫描每个文件。
我有一份 Pentaho 作业,在其中一个 运行 信息中,我想获取文件夹中的文件数。我尝试了两种不同的方法,但都花了 2 分钟多的时间来执行。我想知道是否有一个步骤可以用来以更有效的方式执行此操作。
方法 1 - 获取文件行数 -> 设置变量
在我的获取文件行计数步骤中,我有目录和通配符 (.*.xml) 来获取文件夹中 xml 文件的计数。在内容选项卡中,我将文件计数保存到一个字段 (fileCount),然后将其保存到一个变量。对于包含 3,722 xml 个文件的文件夹,它需要 2:15 到 运行。
方法 2 - 获取文件名 -> 分组依据 -> 设置变量
通过这种方法,我有一个与步骤 'Get File rows count' 类似的设置,但是在我使用类型 'Number of rows (without field argument)' 进行分组操作之后。此方法 运行 在 2:30 中适用于相同的 3,722 个文件。
我认为这些花费了很长时间,因为它试图将文件放入内存,但我只关心计数。希望看到一种方法来计算。
Get Files Rows count 步骤将计算每个文件中的每一行,所以它很慢也就不足为奇了。
使用获取文件名步骤,无论文件大小如何,都应该非常快。幸运的是,我准备了一个装满 XML 文件的文件夹,所以这是一张截图(在我笔记本电脑上的 linux 虚拟机中)
如果您在使用此步骤时仍然遇到问题,请首先确保您已从转换中删除其他输入步骤,因为它们仍然 运行 并且可能会产生干扰。其次,检查防病毒软件是否在 Spoon 访问文件的元数据时尝试扫描每个文件。