데이터 변환 패턴

Java에서 데이터 가져오기

Anthony Markham

VP Quant Developer

map 함수

  • 열의 각 요소를 변환합니다
DoubleColumn celsius = DoubleColumn.create("Celsius", 0, 10, 20, 30);

DoubleColumn fahrenheit = celsius.map(c -> c * 9.0/5.0 + 32); table.addColumns(fahrenheit.setName("Fahrenheit"));
Celsius Fahrenheit
0.0 32.0
10.0 50.0
20.0 68.0
30.0 86.0
Java에서 데이터 가져오기

reduce 함수

  • 열의 모든 값을 하나의 결과로 결합합니다
  • 누산기 패턴 적용(예: 합계, 최댓값, 사용자 정의 로직)
  • 통계·분석 작업에 유용합니다
// Find the total sales
double totalSales = table.doubleColumn("Sales").reduce(0, Double::sum);
250000
// Find the maximum
double largeSales = table.doubleColumn("Sales").reduce(0, (acc, x) -> acc + (x > 5000 ? 1 : 0));
68
Java에서 데이터 가져오기

forEach로 행 반복

  • 테이블의 각 행을 순회합니다
DoubleColumn difference = DoubleColumn.create("Difference");
table.forEach(row -> {
    double celsius = row.getDouble("Celsius");
    double fahrenheit = row.getDouble("Fahrenheit");
    difference.append(fahrenheit - celsius);
});

table.addColumns(difference);
Celsius Fahrenheit Difference
0.0 32.0 32.0
10.0 50.0 40.0
20.0 68.0 48.0
Java에서 데이터 가져오기

변환 파이프라인

  • 여러 연산을 체이닝합니다
  • 코드 가독성과 유지보수성이 향상됩니다 ✅
  • 데이터 처리 효율적 ✅
Table result = originalTable
    .where(numberColumn("Age").isGreaterThan(18)) // Filter on Age > 18

.addColumns( numberColumn("Income").map(i -> i * 1.1).setName("AdjustedIncome") );
// Calculate average income double avgIncome = result.doubleColumn("AdjustedIncome") .reduce(0.0, Double::sum) / result.rowCount();
Java에서 데이터 가져오기

정리

  • map() - 함수를 적용해 열 값을 변환
  • forEach() - 여러 열에 접근하기 위해 행 반복
  • reduce() - 데이터를 집계·요약해 단일 값 생성

세 가지 데이터 변환 함수를 보여 주는 이미지

Java에서 데이터 가져오기

실습해 봅시다!

Java에서 데이터 가져오기

Preparing Video For Download...