Llap external client gives different precision/scale as compared to when the query is executed beeline. Consider the following results:
Result from Beeline
Result from Llap external client
This is due to Driver(beeline path) calls analyzeInternal() for getting result set schema which initializes resultSchema after some more transformations as compared to llap-ext-client which calls genLogicalPlan()
Replacing genLogicalPlan() by analyze() resolves this.