- average, sum, count, concatenation 기능을 수행할 수 있다.
- 그룹을 지정하여 집계를 할 수 있다.
- attributes: 집계함수를 적용할 attributes(column)(repeated)
- groupByAttributeName: group으로 만들 column 이름(repeated)
- 입력 DataFrame의 유효성 검사를 진행한다. (AttributesList, GroupByAttributeNameList)
- Spark DataFrame의 groupBy로 분류 한 후 agg할 각 함수를 실행한다.
- 출력 DataFrame을 생성한다.
play |
outlook |
temperature |
humidity |
wind |
no |
sunny |
85 |
85 |
false |
no |
sunny |
80 |
90 |
true |
yes |
overcast |
83 |
78 |
false |
yes |
rain |
70 |
96 |
false |
yes |
rain |
68 |
80 |
false |
no |
rain |
65 |
70 |
true |
yes |
overcast |
64 |
65 |
true |
no |
sunny |
72 |
95 |
false |
yes |
sunny |
69 |
70 |
false |
yes |
rain |
75 |
80 |
false |
yes |
sunny |
75 |
70 |
true |
yes |
overcast |
72 |
90 |
true |
yes |
overcast |
81 |
75 |
false |
no |
rain |
71 |
80 |
true |
index |
outlook |
play |
temperature_avg |
humidity_sum |
outlook_concat |
temperature_count |
1 |
overcast |
yes |
75.0 |
308 |
overcast/overcast... |
4 |
2 |
rain |
no |
68.0 |
150 |
rain/rain |
2 |
3 |
rain |
yes |
71.0 |
256 |
rain/rain/rain |
3 |
4 |
sunny |
no |
79.0 |
270 |
sunny/sunny/sunny |
3 |
5 |
sunny |
yes |
72.0 |
140 |
sunny/sunny |
2 |
- parameter설정은 (“Temperature” : average), (“Humidity” : sum), (“Outlook”, concatenation), (“temperature”, count)로 설정을 하였고 group 설정으로는 Outlook, Play column으로 설정하였다. parameter 설정 코드는 다음과 같다.
val aggregateInfo =
AggregateInfo.newBuilder()
.addAttributes(
AttributeEntry.newBuilder()
.setAttributeName("temperature")
.setFunctionType(FunctionType.AVERAGE)
.build())
.addAttributes(
AttributeEntry.newBuilder()
.setAttributeName("humidity")
.setFunctionType(FunctionType.SUM)
.build())
.addAttributes(
AttributeEntry.newBuilder()
.setAttributeName("outlook")
.setFunctionType(FunctionType.CONCATENATION)
.build())
.addAttributes(
AttributeEntry.newBuilder()
.setAttributeName("temperature")
.setFunctionType(FunctionType.COUNT)
.build())
.addGroupByAttributeName("outlook")
.addGroupByAttributeName("play")
.build
- parameter를 설정한 결과에 대한 DataFrame을 결과 데이터에서 확인할 수 있다.