apache/druid · error · UnsupportedOperationException

Parquet does not support JQ

Error message

Parquet does not support JQ

What it means

Capability sentinel in ParquetGroupFlattenerMaker.makeJsonQueryExtractor: flatten expressions using JQ (JSON query) syntax are not implemented for parquet Group records; only JsonPath and nested-field extraction are supported, so requesting a JQ extractor is rejected up front.

Solutions

  1. Rewrite the flattenSpec expression to use JsonPath syntax instead of JQ.
  2. Use plain nested field paths (makeJsonTreeExtractor style) for top-level or single-node access.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at extensions-core/parquet-extensions/src/main/java/org/apache/druid/data/input/parquet/simple/ParquetGroupFlattenerMaker.java:95 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/4ae075933781f954. Report an issue: GitHub.

Appendix: source

Thrown at extensions-core/parquet-extensions/src/main/java/org/apache/druid/data/input/parquet/simple/ParquetGroupFlattenerMaker.java:95

    Object val = converter.convertField(obj, key);
    return finalizeConversion(val);
  }

  @Override
  public Function<Group, Object> makeJsonPathExtractor(String expr)
  {
    final JsonPath jsonPath = JsonPath.compile(expr);
    return record -> {
      Object val = jsonPath.read(record, jsonPathConfiguration);
      return finalizeConversion(val);
    };
  }

  @Nullable
  @Override
  public Function<Group, Object> makeJsonQueryExtractor(String expr)
  {
    throw new UnsupportedOperationException("Parquet does not support JQ");
  }

  @Override
  public Function<Group, Object> makeJsonTreeExtractor(List<String> nodes)
  {
    if (nodes.size() == 1) {
      return (Group group) -> getRootField(group, nodes.get(0));
    }

    throw new UnsupportedOperationException("Parque does not support nested tree extraction");
  }

  @Override
  public JsonProvider getJsonProvider()
  {
    return parquetJsonProvider;
  }

View on GitHub (pinned to 9b90983fd2)