prestodb/presto · error · PrestoException

HIVE_UNSUPPORTED_FORMAT

HIVE_UNSUPPORTED_FORMAT

Error message

Output format %s with SerDe %s is not supported

What it means

extractHiveStorageFormat inspects the table's StorageFormat; when the output format / SerDe combination read from the metastore does not map to any known HiveStorageFormat, the connector cannot interpret the table's file format.

Source

Thrown at presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java:3566

        if (session.getSqlFunctionProperties().isLegacyTimestamp() && !allowCorruptWritesForTesting && !timeZone.equals(DateTimeZone.getDefault())) {
            throw new PrestoException(HIVE_TIMEZONE_MISMATCH, format(
                    "To write Hive data, your JVM timezone must match the Hive storage timezone. Add -Duser.timezone=%s to your JVM arguments.",
                    timeZone.getID()));
        }
    }

    private static HiveStorageFormat extractHiveStorageFormat(Table table)
    {
        StorageFormat storageFormat = table.getStorage().getStorageFormat();
        String outputFormat = storageFormat.getOutputFormat();
        String serde = storageFormat.getSerDe();

        for (HiveStorageFormat format : values()) {
            if (format.getOutputFormat().equals(outputFormat) && format.getSerDe().equals(serde)) {
                return format;
            }
        }
        throw new PrestoException(HIVE_UNSUPPORTED_FORMAT, format("Output format %s with SerDe %s is not supported", outputFormat, serde));
    }

    private static Map<String, String> extractSerdeParameters(Map<String, String> tableParameters)
    {
        return tableParameters.entrySet().stream()
                .filter(entry -> TEXTFILE_SERDE_KEYS.contains(entry.getKey()))
                .collect(toImmutableMap(Map.Entry::getKey, Map.Entry::getValue));
    }

    @VisibleForTesting
    static String encodePreferredOrderingColumns(List<SortingColumn> preferredOrderingColumns)
    {
        return Joiner.on(COMMA).join(preferredOrderingColumns.stream()
                .map(SortingColumn::sortingColumnToString)
                .collect(toImmutableList()));
    }

    @VisibleForTesting

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Alter the table to a supported output-format/SerDe combination
  2. Check for typos or custom SerDes in the metastore storage descriptor
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java:3566 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04). Data as JSON: /api/errors/2855eaed74791a29. Report an issue: GitHub.