@@ -39,16 +39,6 @@ final case class UnknownMeasure(measureName: String, measuredColumns: Seq[String
39
39
40
40
object AtumMeasure {
41
41
42
- // val supportedMeasureNames: Seq[String] = Seq(
43
- // RecordCount.measureName,
44
- // DistinctRecordCount.measureName,
45
- // SumOfValuesOfColumn.measureName,
46
- // AbsSumOfValuesOfColumn.measureName,
47
- // SumOfTruncatedValuesOfColumn.measureName,
48
- // AbsSumOfTruncatedValuesOfColumn.measureName,
49
- // SumOfHashesOfColumn.measureName
50
- // )
51
-
52
42
case class RecordCount private (measureName : String ) extends AtumMeasure {
53
43
private val columnExpression = count(" *" )
54
44
@@ -120,8 +110,7 @@ object AtumMeasure {
120
110
}
121
111
122
112
case class SumOfTruncatedValuesOfColumn private (measureName : String , measuredCol : String ) extends AtumMeasure {
123
- // Cast to LongType to remove decimal points then cast back to decimal to ensure compatibility
124
- // private val columnAggFn: Column => Column = column => sum(column.cast(LongType).cast(DecimalType(38, 0)))
113
+
125
114
private val columnAggFn : Column => Column = column => sum(when(column >= 0 , floor(column)).otherwise(ceil(column)))
126
115
127
116
override def function : MeasurementFunction = (ds : DataFrame ) => {
@@ -131,16 +120,15 @@ object AtumMeasure {
131
120
}
132
121
133
122
override def measuredColumns : Seq [String ] = Seq (measuredCol)
134
- override val resultValueType : ResultValueType = ResultValueType .BigDecimalValue
123
+ override val resultValueType : ResultValueType = ResultValueType .LongValue
135
124
}
136
125
object SumOfTruncatedValuesOfColumn {
137
126
private [agent] val measureName : String = " aggregatedTruncTotal"
138
127
def apply (measuredCol : String ): SumOfTruncatedValuesOfColumn = SumOfTruncatedValuesOfColumn (measureName, measuredCol)
139
128
}
140
129
141
130
case class AbsSumOfTruncatedValuesOfColumn private (measureName : String , measuredCol : String ) extends AtumMeasure {
142
- // Cast to LongType to remove decimal points then cast back to decimal to ensure compatibility
143
- // private val columnAggFn: Column => Column = column => sum(abs(column.cast(LongType).cast(DecimalType(38, 0))))
131
+
144
132
private val columnAggFn : Column => Column = column => sum(abs(when(column >= 0 , floor(column)).otherwise(ceil(column))))
145
133
146
134
override def function : MeasurementFunction = (ds : DataFrame ) => {
@@ -150,7 +138,7 @@ object AtumMeasure {
150
138
}
151
139
152
140
override def measuredColumns : Seq [String ] = Seq (measuredCol)
153
- override val resultValueType : ResultValueType = ResultValueType .BigDecimalValue
141
+ override val resultValueType : ResultValueType = ResultValueType .LongValue
154
142
}
155
143
object AbsSumOfTruncatedValuesOfColumn {
156
144
private [agent] val measureName : String = " absAggregatedTruncTotal"
0 commit comments