Data Engineering 37

Future 컬렉션

동시성 프로그래밍에 쓰인다. 그리고 어렵다. 나는 과제를 진행하면서 하나의 패키지에 Streaming Thread 와 Model Trainer Thread를 만들었고이때 Future 를 이용하였다. 백그라운드 작업을 개시하는 concurrent.Future다. Option과 Try와 같이 퓨처(future)는 잠재적 값을 나타내며, 추가 연산을 연결하거나 값을 추출하는 안전한 연산을 제공한다. 스칼라는 자바 가상 머신 (JVM)에서 동작한다. 그리고 스칼라 코드는 JVM의 가벼운 동시성 프로세서(concurrent process)인 자바 '스레드'내에서도 동작할 수 있다. 기본 적으로 스칼라 코드는 JVM의 'main' 스레드에서 동작하지만, 병행 스레드에서 백그라운드 작업을 실행하도록 지원할 수 있다...

scala monad 란?

monad는 유명한 경구용 탈모방지약이자 Scala언어에서 가장 중요한 개념으로 쓰이는 용어이다. 나는 탈모환자라서 모나드를 먹고 있는데 스칼라에서는 monad라는 용어를 보니 매칭이 되지않았다. 그래서 어원을 찾아봤다. 용어 '모나딕(monadic)'은 그리스 어원으로서 하나의 단위를 의미하며, 범주론 관점에서는 연산의 체인에서 단일 링크를 뜻한다. scala에서 자주 쓰이는 ().().().(). 이런 형태의 링크 연산이다.아하~~ 이제 이해가 되네. 탈모약 모나드는 머리카락이 빠지지말고 쭈욱 길게 나라는 뜻이고...ㅋㅋㅋ 모르고 쓰면 그때뿐이지만 알고 쓰면 더 이해도 쉽고 응용력이 생겨 더 재밌다는 사실 ㅋㅋ

업무 범위

Spark는 ML을 지원하는 분석툴도 가능하지만 나는 spark를 big data engineering Tool로서 사용한다. 내가 지금 하는 일은 Data Science가 아니다.Data Engineering 이다. 분석가가 만든 모델을 주기적으로 학습시켜 정확도가 확보된 모델을 자동으로 생성시킨다. 또한 분석가가 필요로 하는 데이터를 확보할 수 있도록 데이터 파이프라인들을 만든다.주로 HBase에서 꺼내다가 전처리를(StandardScaling, Outlier Remove, etc) 한 후 분석가에게 갖다 바친다. 데이터 엔지니어로 시작했다가 지금은 비즈니스적인 문제를 ML/DL을 이용하여 해결하는 역할을 하고 있다.데이터 수집/분석/전처리/학습/모델링/Serving/운영까지 다 하는 Full Sta..

혼잡 인지 모델 검증(Loss 구하기)

현재 진행중인 혼잡 인지 모델 개발 과제에서 Spark으로 구현한 Linear Regression 모델의 성능을 측정하였다. 먼저 CrossValidation Class를 이용하여 교차 검증을 하였다. CrossValidation 을 생성하면 Default 가 로딩된 데이터를 3벌로 나누고 2벌은 Training으로 사용하고 1벌은 Test 용도로 사용된다. (70:30 비율) val crossval = new CrossValidator() .setEstimator(pipeline) .setEvaluator(new RegressionEvaluator().setLabelCol("loading_time")) .setEstimatorParamMaps(paramGrid) Spark.org에 가면 CrossVal..

Option Class 와 map

Scalar에는 Option Class가 존재한다.이 클래스는 Java언어에서 특정 Method가 Null을 return할 경우, 매번 확인해야하는 Bolier plate 코드를 계속 삽입해야하는 불편함과 Null dereference오류를 방지하기 위해 고안된 클래스다. 이 클래스를 설명한 Scalar Doc을 참고하면 "Represents option values, Instances of Option are either an instance of Some or the Object None. The Most idiomatic way to use an Option instance is to treat it as a collection or monad and use map, flatMap, filter, ..