alibaba/DataX · error · RuntimeException
>=,> can't support this columnType:%s
Error message
>=,> can't support this columnType:%s
What it means
Inside dx_filter's doGreat (operators > and >=), only numeric columns (Long/Double) and Date columns are comparable; any other column type reaching the final else throws RuntimeException('>=,> can't support this columnType:...') under TRANSFORMER_RUN_EXCEPTION. Null raw data is skipped, but Bool/bytes and unknown custom Column types cannot be ordered numerically.
Source
Thrown at core/src/main/java/com/alibaba/datax/core/transport/transformer/FilterTransformer.java:128
}
}
} else if (column instanceof StringColumn || column instanceof BytesColumn || column instanceof BoolColumn) {
String ori = column.asString();
if (hasEqual) {
if (ori.compareTo(value) >= 0) {
return null;
} else {
return record;
}
} else {
if (ori.compareTo(value) > 0) {
return null;
} else {
return record;
}
}
} else {
throw new RuntimeException(">=,> can't support this columnType:" + column.getClass().getSimpleName());
}
}
private Record doLess(Record record, String value, Column column, boolean hasEqual) {
//如果字段为空,直接不参与比较。即空也属于无穷大
if(column.getRawData() == null){
return record;
}
if (column instanceof DoubleColumn) {
Double ori = column.asDouble();
double val = Double.parseDouble(value);
if (hasEqual) {
if (ori <= val) {
return null;
} else {View on GitHub (pinned to 80ec23d5c5)
Solutions
- Target a numeric or date column with > / >=.
- Recheck the column index against the reader's column order after schema changes.
- For string comparison semantics use like or =/!= instead of >.
Example fix
// before
{"name": "dx_filter", "parameter": [3, ">", "1"]} // column 3 is boolean
// after
{"name": "dx_filter", "parameter": [3, "=", "true"]} Defensive patterns
Strategy: validation
Validate before calling
Column c = record.getColumn(idx);
boolean comparable = c instanceof LongColumn || c instanceof DoubleColumn || c instanceof DateColumn;
if ((code.equals(">") || code.equals(">=")) && !comparable) {
throw new IllegalArgumentException(">/>= needs numeric or date column, got " + c.getClass().getSimpleName());
} Type guard
static boolean orderableByGreat(Column c) {
return c instanceof LongColumn || c instanceof DoubleColumn || c instanceof DateColumn;
} Prevention
- Reserve >/>= for numeric or date columns.
- Recheck column indexes after source schema changes.
When it happens
Trigger: Filtering with ">"/">=" on a column that arrives as BoolColumn, BytesColumn, or a custom Column subclass — e.g. parameter [3, ">", "1"] where column 3 is a boolean flag.
Common situations: Column index drift after source schema changes (numeric column replaced by boolean/bytes); mysql bit(1) columns surfacing as BoolColumn.
Related errors
- <=,< can't support this columnType:%s
- == can't support this columnType:%s
- dx_filter paras must be 3
- dx_filter para 2 can't be null
- dx_filter can't support code:%s
AI-assisted analysis of alibaba/DataX@80ec23d5c5 (2026-08-14).
Data as JSON: /api/errors/084ea8653dc9180e.
Report an issue: GitHub.