<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=RDD</id>
	<title>RDD - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=RDD"/>
	<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=RDD&amp;action=history"/>
	<updated>2026-05-19T13:40:00Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://devcafe.co.kr/w/index.php?title=RDD&amp;diff=372&amp;oldid=prev</id>
		<title>Devcafe: 새 문서: === RDD === # 스파크는 RDD(Resilient Distributed Datasets, 탄력적 분산 데이터셋)이라고 불리는 이뮤터블(immutable) 자바 가상 머신(JVM) 객체들의 집합으로 구성됨 # 이 객체들은 잡들이 매우 빠르게 연산할 수 있도록 메모리상에서 캐시되고 저장되고 계산됨 #:* 이러한 스키마는 하둡과 같은 다른 전형적인 분산 처리 시스템과 비교해 빠른 연산이 가능. # map(), reduce(), filter()와...</title>
		<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=RDD&amp;diff=372&amp;oldid=prev"/>
		<updated>2024-10-14T17:02:20Z</updated>

		<summary type="html">&lt;p&gt;새 문서: === RDD === # 스파크는 RDD(Resilient Distributed Datasets, 탄력적 분산 데이터셋)이라고 불리는 이뮤터블(immutable) 자바 가상 머신(JVM) 객체들의 집합으로 구성됨 # 이 객체들은 잡들이 매우 빠르게 연산할 수 있도록 메모리상에서 캐시되고 저장되고 계산됨 #:* 이러한 스키마는 하둡과 같은 다른 전형적인 분산 처리 시스템과 비교해 빠른 연산이 가능. # map(), reduce(), filter()와...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== RDD ===&lt;br /&gt;
# 스파크는 RDD(Resilient Distributed Datasets, 탄력적 분산 데이터셋)이라고 불리는 이뮤터블(immutable) 자바 가상 머신(JVM) 객체들의 집합으로 구성됨&lt;br /&gt;
# 이 객체들은 잡들이 매우 빠르게 연산할 수 있도록 메모리상에서 캐시되고 저장되고 계산됨&lt;br /&gt;
#:* 이러한 스키마는 하둡과 같은 다른 전형적인 분산 처리 시스템과 비교해 빠른 연산이 가능.&lt;br /&gt;
# map(), reduce(), filter()와 같은 트랜스포메이션(transformation)을 제공&lt;br /&gt;
# 다양한 연산을 수행하기 위해 하둡 플랫폼의 유연성과 확장성을 유지&lt;br /&gt;
# 병렬로 데이터에 트랜스포메이션을 적용하고 기록하는데, 이는 속도와 내구성을 향상시킴&lt;br /&gt;
# 트랜스포메이션별로 데이터의 흐름(data lineage)를 제공&lt;br /&gt;
#:* 이로 인해 RDD는 데이터 유실을 막을 수 있으며, RDD 일부의 파티션이 없어지더라도 추가적인 데이터 복구를 하지 않고 유실된 파티션을 재생산해낼 수 있는 충분한 데이터를 가지고 있음&lt;br /&gt;
# RDD에서 병렬 연산은 포인터를 새로운 RDD에 리턴하는 트랜스포메이션(transformation)과 연산 후에 값을 리턴하는 액션(action) 이렇게 두종류가 있음.&lt;br /&gt;
#:* RDD 트랜스포메이션은 연산을 즉시 하지 않는다는 점에서 게으른 연산이라 함&lt;br /&gt;
#:* 트렌스포메이션은 액션이 실행되고 결과가 드라이버에 리턴되어야 할때만 수행됨&lt;br /&gt;
# 실행을 지연시키려면 성능 측면에서 더욱 정교화된 쿼리를 수행할 수 있음&lt;br /&gt;
# 최적화는 아파치 스파크 DAG 스케줄러(스테이지를 이용해 변형하는 스테이지 기반의 스케줄러)에서 시작&lt;br /&gt;
# RDD는 트랜스포메이션과 액션이 분리되어 DAG 스케줄러의 경우 최적화를 쿼리상에서 수행할 수 있으며, 또한 데이터를 섞는 것 같은 상당한 리소스가 소모되는 작업을 피할 수 있음&lt;br /&gt;
# 테이블 조인 효율화 같은 처리를 사용자가 직접 제어 해야 했기 때문에 최적화에 어려움&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
// RDD 예제 &lt;br /&gt;
val data = Array(1, 2, 3, 4, 5)&lt;br /&gt;
val distData = sc.parallelize(data)&lt;br /&gt;
distData.map(x =&amp;gt; if(x &amp;gt;= 3) x else 0).reduce((x, y) =&amp;gt; x + y)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
</feed>