代码
?
public SpecificOrdering generate(org.apache.spark.sql.catalyst.expressions.Expression[] expr) { return new SpecificOrdering(expr);}class SpecificOrdering extends org.apache.spark.sql.catalyst.expressions.codegen.BaseOrdering { private org.apache.spark.sql.catalyst.expressions.Expression[] expressions; public SpecificOrdering(org.apache.spark.sql.catalyst.expressions.Expression[] expr) { expressions = expr; } @Override public int compare(InternalRow a, InternalRow b) { InternalRow i = null; // Holds current row being evaluated. i = a; boolean isNullA2; UTF8String primitiveA3; { /* input[2, StringType] */ boolean isNull0 = i.isNullAt(2); UTF8String primitive1 = isNull0 ? null : (i.getUTF8String(2)); isNullA2 = isNull0; primitiveA3 = primitive1; } i = b; boolean isNullB4; UTF8String primitiveB5; { /* input[2, StringType] */ boolean isNull0 = i.isNullAt(2); UTF8String primitive1 = isNull0 ? null : (i.getUTF8String(2)); isNullB4 = isNull0; primitiveB5 = primitive1; } if (isNullA2 && isNullB4) { // Nothing } else if (isNullA2) { return -1; } else if (isNullB4) { return 1; } else { int comp = primitiveA3.compare(primitiveB5); if (comp != 0) { return comp; } } return 0; }}
?