본문 바로가기

Scala4

[scala] 스칼라 익스트랙터(extractor) apply, unapply - extractor 기존 타입에 대한 새로운 패턴을 정의 가능 - apply 인수를 받아 객체를 생성하는 생성자와 비슷 - unapply 객체를 받아서 인수를 되돌려줌 패턴 일치 및 부분 함수에서 자주 사용됨 리턴타입 - Boolean - Option[T] : T유형의 단일 하위 값 반환 - Option[(T1,T2 ..., Tn)] : 여러 하위 값을 반환 예제 Menu Object를 정의 apply메소드에서는 이름과, 가격을 파라미터로 받고 리턴은 문자열로 해줌 object Menu { def apply(name: String,price: String): String = s"$name--$price" def unapply(price: String): Option[String] = { val stri.. 2022. 8. 25.
[Spark] RDD(Resilient Distributed Dataset) 개념과 연산 예제 2021.10.20 - [BigData/Spark] - [Spark] 스파크 개념 앞에 게시물에서 Spark Core에 RDD라는 내용이 나왔는데 RDD의 개념과 사용법을 알아보도록 하겠습니다. 1. RDD (Resilient Distributed Dataset) 란? - 회복력 있는 메모리에 분산된 데이터셋으로 기본적으로 스파크 내부적으로 연산하는 데이터들을 RDD 형태로 사용한다. 2. RDD 특징 - 여러 분산 노드에 나누어진다. - 다수의 파티션으로 관리된다. - 변경이 불가능한 데이터 셋이다. 3. RDD 생성 위 그림을 참고해서 보면 RDD는 파일 시스템( HDFS, GlusterFS )을 읽어와서 메모리에 저장할 때 생성이 되고 코드에서 생성되는 데이터를 저장할 때 사용된다. 즉 정리하자면 .. 2021. 11. 6.
[Scala] ftpClient.makeDirectory return false ftpClient.makeDirectory return false apache commons FTPClient 사용하여 remote 서버에 디렉토리를 만들고 싶어 makeDirectory를 사용하여 path를 지정 해 주었는데 return 값이 false가 나옴 원인 FTPClient에서는 상위계층 디렉토리 만드는 기능을 지원하지 않음 ex ) var targetDir = "/home/username/test/snd" var returnCd = ftpClient.makeDirectory(targetDir) remote 서버 경로 /home/username 만 있을 경우 디렉토리를 test -> snd 순으로 만들어야하는 데 만들 지 못함. 해결방안 1 경로를 "/" split 하여 해당 경로가 있는지 확.. 2021. 10. 19.
[Scala] 스칼라 설치 및 IDE 셋팅 새로운 업무를 시작하면서 Spark(대용량 분산처리 분석시스템)을 사용하게 되었고, Scala로 개발을 진행하게 되었다. 기본적인 개념 정리와 사용법을 익히기 위해 스칼라 공부를 시작하기로 하였다. 먼저 로컬 환경 세팅 과정을 기록하였다. 스칼라란? Scalable Language의 약자로 확장 가능한 언어라는 뜻. 함수형프로그래밍과 객체지향 프로그래밍 언어로의 특징을 동시에 지원하는 언어이며, 자바의 복잡한 단점을 해결하기 위해 만들어졌다. JVM bytecode로 컴파일되어서 실행되므로 JVM 위에서 실행시킬 수 있다. 스칼라 설치 1. 설치 환경 os : mac java : java version 1.8.0_281 scala : 2.13.6 IDE : 2020-12 (4.18.0) - 자바 스칼라 .. 2021. 10. 17.