@Override
    public Object parse(SourceData sourceData, int rowIndex, Context context) {
        Object leftArrayObj = leftArrayParser.parse(sourceData, rowIndex, context);
        Object rightArrayObj = rightArrayParser.parse(sourceData, rowIndex, context);
        if (leftArrayObj == null || rightArrayObj == null) {
            return null;
        }
        if (leftArrayObj instanceof ArrayList && rightArrayObj instanceof ArrayList) {
            ArrayList<?> leftArray = (ArrayList<?>) leftArrayObj;
            ArrayList<?> rightArray = (ArrayList<?>) rightArrayObj;
            if (leftArray.isEmpty() || rightArray.isEmpty()) {
                return null;
            }
            Set<Object> res = new LinkedHashSet<>();

            for (Object value : leftArray) {
                if (!rightArray.contains(value)) {
                    res.add(value);
                }
            }
            return new ArrayList<>(res);
        }
        return null;
    }
ArrayExceptFunction  ->  ARRAY_EXCEPT(array1, array2)
description:
- Return NULL if any parameter is null;
- Return an ARRAY that contains the elements from 'array1' that are not in 'array2', without duplicates;
- Return an empty ARRAY if no elements remain after excluding the elements in 'array2' from 'array1'.
inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/collection/ArrayExceptFunction.java