RDD(Resilient Distributed Dataset)
RDD는 스파크가 사용하는 핵심 데이터 모델로서 다수의 서버에 걸쳐 분산 방식으로 저장된 데이터 요소들의 집합이다.
병렬 처리가 가능하고 장애가 발생할 경우에도 스스로 복구될 수 있는 내성을 갖고 있다.
RDD에 속한 요소들은 파티션이라 하는 더 작은 단위로 나눠질 수 있는데, 스파크는 작업을 수행할 때 바로 이 파티션 단위로 나눠서 병렬로 처리를 수행한다.
즉, RDD는 분산 데이터 모델이며 내부에는 단위 데이터를 포함하고 있고 저장할 때는 여러 서버에 나누어 저장되며, 처리할 때는 각 서버에 저장된 데이터를 동시에 병렬로 처리할 수 있는 모델이다.
Databricks
Databricks는 Spark 기반의 분석 플레폼 서비스를 제공한다.
https://community.cloud.databricks.com/login.html 에서 계정을 등록 한 후 들어가는 첫 번째 페이지이다.
Spark는 분산병렬데이터 프로세싱으로 그림과 같이 Cluster, Table, Notebook로 나눌 수 있다.
Cluster은 코드를 돌리는 머신이며, Table은 사용할 데이터셋을 저장하는 스토리지, Notebook은 코드를 입력할 수 있는 창이다.
RDD 생성
일반적으로 RDD를 생성하는 두 가지 방법이 있는데, 외부 데이터 세트를 로드하거나 개체 컬랙션 집합을 배포하는 것이다.
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("Python Spark create RDD example") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
#By using parallelize()
df = spark.sparkContext.paralleize([
(1,2,3,'a b c'),
(4,5,6,'d e f'),
(7,8,9,'g h i')]).toDF(['col1', 'col2', 'col3', 'col4'])
df.show()
#By using createDataFrame()
Employee = spark.createDataFrame([
('1', 'Joe', '70000', '1'),
('2', 'Henry', '80000', '2'),
('3', 'Sam', '60000', '2'),
('4', 'Max', '90000', '1')],
['Id', 'Name', 'Sallary', 'DepartmentId'])
#By using read() and load()
#Read dataset from .csv file
df = spark.read.format('com.databricks.spark.csv'). \
options(headr='true', \
inferschema='true'). \
load("/home/feng/Spark/Code/data/Advertising.csv", \
header=True)
df.show(5)
df.printSchema()
#Read dataset from HDFS
from pyspark.conf import sparkConf
from pyspark.context import SparkContext
from pyspark.sql import HiveContext
sc = SparkContext('local', 'example')
hc = HiveContext(sc)
tf1 = sc.textFile("hdfs://cdhstltest/user/data/demo.CSV")
print(tf1.first())
hc.sql('use intg_cme_w")
spf = hc.sql('SELECT * FROM spf LIMIT 100")
print(spf.show(5))
Spark Operations
Spark Operation에는 Transformations 및 Actions 두가지 주요 유형이 있다.
Spark Transformations는 이전 RDD에서 새 RDD를 구성한다. 예를 들어, 한 가지 일반적인 변환은 조건자와 일치하는 데이터를 필터링하는 것이다.
반면에 Spark Action은 RDD를 기반으로 결과를 계산하고 이를 Driver 프로그램으로 반환하거나 외부 스토리지 시스템(예: HDFS)에 저장한다.
[참조]
'빅데이터' 카테고리의 다른 글
빅데이터_Chapter?_SparkRDD (0) | 2022.06.06 |
---|---|
빅데이터_Chapter05_Spark (0) | 2022.05.02 |
빅데이터_Chapter05_Spark 설치 및 환경설정 (0) | 2022.04.27 |
빅데이터_Chapter04_Hadoop 설치 및 환경설정 (0) | 2022.04.27 |
빅데이터_Chapter03_Java 설치 및 환경설정 (0) | 2022.04.27 |