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
- Rewrite the flattenSpec expression to use JsonPath syntax instead of JQ.
- 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)