commonlib/src/main/java/com/streamsets/pipeline/lib/util/AvroTypeUtil.java
public static BigDecimal bigDecimalFromBytes(byte[] decimalBytes, int scale) {
    final BigInteger bigInt = new BigInteger(decimalBytes);
    return new BigDecimal(bigInt, scale);
  }
public static BigDecimal bigDecimalFromBytes(byte[] decimalBytes, int scale) {
    final BigInteger bigInt = new BigInteger(decimalBytes);
    return new BigDecimal(bigInt, scale);
  }
public static BigDecimal bigDecimalFromBytes ( byte [ ] decimalBytes , int scale ) { final BigInteger bigInt = new BigInteger ( decimalBytes ) ; return new BigDecimal ( bigInt , scale ) ; }
Returns a {@link BigDecimal} from the given bytes and scale.  The bytes must adhere to the format that Avro
stores decimals in.
<br>
Avro stores decimal values as two's complement, big-endian for the integral portion, then the decimal place
separately (via the scale).

@see <a href="https://avro.apache.org/docs/1.8.1/spec.html#Decimal">Avro documentation</a>

@param decimalBytes the bytes of the decimal value's integral value, assumed to be two's complement, big-endian
@param scale the scale of the decimal value
@return a {@link BigDecimal} constructed from the decimalBytes and scale
Returns a { @link BigDecimal } from the given bytes and scale . The bytes must adhere to the format that Avro stores decimals in . <br > Avro stores decimal values as two s complement big - endian for the integral portion then the decimal place separately ( via the scale ) .