-
[Spark] 스파크컨텍스트 , RDD 생성ComputerScience/스파크 2020. 7. 13. 13:54
모든 코드는 8버전 이상의 Java입니다.
1. 스파크컨텍스트 생성
스파크 애플리케이션과 클러스터의 연결을 관리하는 객체로서 모든 스파크 애플리케이션은 반드시 스파크 컨텍스트를 생성해야 합니다.
RDD를 비롯하여 스파크에서 사용하는 주요 객체는 스파크컨텍스트를 이용해 생성할 수 있습니다.
SparkConf conf = new SparkConf().setMaster("local[*]").setAppName("RDDCreateSample"); JavaSparkContext sc = new JavaSparkContext(conf);
스파크컨텍스트를 생성할 때는 스파크 동작에 필요한 여러 설정 정보들을 지정할 수 있습니다. 이 중 클러스터 마스터 정보와 애플리케이션 이름은 반드시 지정해야하는 필수 정보이다.
local[*] : []안의 내용은 사용할 스레드의 개수로 local은 단일 스레드, local[3]은 스레드 세개를 의미, *은 가용한 cpu 코어 수의 스레드 의미
2. RDD 생성
스파크는 크게 두 종류의 RDD 생성 방법을 제공한다.
첫 번째 방법은 드라이버 프로그램의 컬렉션 객체를 이용하는 것입니다. 컬렉션 객체는 자바의 경우에는 리스트 타입을 이용합니다. 또 다른 한 가지 방법은 파일과 같은 외부 데이터를 이용하는 방법입니다.
JavaRDD<String> rdd1 = sc.parallelize(Arrays.asList("a","b","c","d","e")); //rdd1 = sc.parallelize(1 to 1000 , 10); //1 부터 1000까지의 숫자를 담은 컬렉션 객체를 생성하고 //파티션의 갯수는 10 JavaRDD<String> rdd2 = sc.textFile("/usr/local/Cellar/apache-spark/3.0.0/README.md");
2.1. collect
collect는 RDD의 모든 원소를 담아서 배열로 돌려줍니다. 반환 타입이 RDD가 아닌 배열이므로 이는 액션에 속하는 연산.
JavaRDD<Integer> rdd = sc.parallelize(Arrays.asList(1,2,3,4,5,6,7,8,9,10)); List<Integer> result = rdd.collect(); for (Object i : result) System.out.println(i);
결과 : 1 2 3 4 5 6 7 8 9 10
2.2. count
count는 RDD를 구성하는 전체 요소의 개수를 반환합니다.
JavaRDD<Integer> rdd = sc.parallelize(Arrays.asList(1,2,3,4,5,6,7,8,9,10)); long result = rdd.count(); System.out.println(result);
결과 : 10
'ComputerScience > 스파크' 카테고리의 다른 글
[spark]Exception in thread "main" java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries! 에러 (0) 2020.07.20 [Spark] RDD의 Action 연산 (0) 2020.07.20 [Spark] IntelliJ에서 lambda not supported at this language level '5' (0) 2020.07.13 [Spark] RDD란? (0) 2020.07.10