apache/druid · error · IllegalArgumentException

No parquet files in directory

Error message

No parquet files in directory [%s]

What it means

Validation in the ParquetToJson command-line tool's getInputFiles(): the single supplied directory contained no files ending in .parquet (listFiles returned null or an empty array). The tool has nothing to convert, so it aborts; point it at a directory that actually contains .parquet files.

Solutions

  1. Place .parquet files in the directory or point to the correct directory.
  2. Check file extensions; files not ending in .parquet are filtered out.
  3. Verify read permissions on the directory.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at extensions-core/parquet-extensions/src/main/java/org/apache/druid/data/input/parquet/ParquetToJson.java:78 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07). Data as JSON: /api/errors/f1343fc2269e6b61. Report an issue: GitHub.

Appendix: source

Thrown at extensions-core/parquet-extensions/src/main/java/org/apache/druid/data/input/parquet/ParquetToJson.java:78

    CliBuilder<Callable> builder = Cli.builder("ParquetToJson");
    builder.withDefaultCommand(ParquetToJson.class);
    builder.build().parse(args).call();
  }

  private File[] getInputFiles()
  {
    if (directories == null || directories.size() != 1) {
      throw new IAE("Only one directory argument is supported!");
    }

    File dir = new File(directories.get(0));
    if (!dir.isDirectory()) {
      throw new IAE("Not a directory [%s]", dir);
    }
    File[] inputFiles = dir.listFiles(
        pathname -> pathname.getName().endsWith(".parquet"));
    if (inputFiles == null || inputFiles.length == 0) {
      throw new IAE("No parquet files in directory [%s]", dir);
    }
    return inputFiles;
  }

  @Override
  public Void call() throws Exception
  {
    ObjectMapper mapper = new DefaultObjectMapper();

    File[] inputFiles = getInputFiles();

    for (File inputFile : inputFiles) {
      File outputFile = new File(inputFile.getAbsolutePath() + ".json");

      try (
          final org.apache.parquet.hadoop.ParquetReader<Group> reader = org.apache.parquet.hadoop.ParquetReader
              .builder(new GroupReadSupport(), new Path(inputFile.toURI()))
              .build();

View on GitHub (pinned to 9b90983fd2)