报错FAILED: ODPS-0420061: Invalid parameter in HTTP request - Read table timeout. Maybe too many files to open

问题现象

如果您购买了MaxCompute服务,在项目中执行相应的MaxCompute SQL语句时,您可能会收到以下的报错信息。

FAILED: ODPS-0420061: Invalid parameter in HTTP request - Read table timeout. Maybe too many files to open. Please try to merge files or get the data with ODPS data export service.

问题原因

小文件过多。

解决方法

您可以通过以下命令来查看表中的小文件数量。

desc extended + 表名;

您可以执行如下SQL语句来整合小文件。

说明

聚簇表(Clustering Table)不支持通过Merge小文件的方法进行合并优化。

set odps.merge.cross.paths=true;
set odps.merge.max.partition.count=100;   --默认优化10个分区,此时设置为优化100个分区。
ALTER TABLE 表名[partition] MERGE SMALLFILES;

相关参考