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 doLess (operators < and <=), only numeric (Long/Double) and Date columns are comparable; other column types hit the final else and throw RuntimeException('<=,< can't support this columnType:...') under TRANSFORMER_RUN_EXCEPTION. Mirrors error 55 but for the less-than path.
Source
Thrown at core/src/main/java/com/alibaba/datax/core/transport/transformer/FilterTransformer.java:189
}
}
} 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());
}
}
/**
* DateColumn将比较long值,StringColumn,ByteColumn以及BooleanColumn比较其String值
*
* @param record
* @param value
* @param column
* @return 如果相等,则过滤。
*/
private Record doEqual(Record record, String value, Column column) {
//如果字段为空,只比较目标字段为"null",否则null字段均不过滤
if(column.getRawData() == null){
if(value.equalsIgnoreCase("null")){View on GitHub (pinned to 80ec23d5c5)
Solutions
- Apply </<= only to numeric or date columns.
- Fix the column index or choose a different comparator (=, !=, like).
- For dates, ensure the reader emits DateColumn and pass a parseable date string.
Example fix
// before
{"name": "dx_filter", "parameter": [1, "<", "10"]} // column 1 is bytes
// after
{"name": "dx_filter", "parameter": [0, "<", "10"]} // column 0 is long 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 orderableByLess(Column c) {
return c instanceof LongColumn || c instanceof DoubleColumn || c instanceof DateColumn;
} Prevention
- Reserve </<= for numeric or date columns.
- Watch boolean/bit(1) columns masquerading as numbers.
When it happens
Trigger: Using "<" or "<=" on a BoolColumn, BytesColumn, or custom Column type: e.g. [1, "<", "10"] where column 1 carries bytes.
Common situations: Schema drift changing a column's Java type; filtering on binary/blob or boolean columns by mistake via wrong index.
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/27fc5f4a92732fc8.
Report an issue: GitHub.