728x90

spark 4

Spark Dataframe Tips

1. pandas_df를 "spark_df = spark.createDataFrame(pandas_df)"를 사용해 spark_df로 변환할 때 만약 pandas_df에 date 타입이 있다면, timestamp 타입으로 오토캐스팅되므로 반드시 cast를 통해 컬럼을 다시 date 타입으로 바꿔줘야한다. spark_df = spark_df.withColumn("date", col("date").cast(DateType())) 2. 만약 spark_df에 존재하는 "year" 컬럼을 기준으로 파티셔닝을 하여 hdfs에 저장하고 싶다면 해당 컬럼을 spark_df의 맨 마지막으로 보낸 뒤 partitionBy("year")를 하면 "year"를 기준으로 GROUP을 지어 파티셔닝이 되고 "year"컬럼을 제..

Hadoop 2023.03.23

Hadoop Ecosystem 정리 #2 (Spark)

- 하둡 에코시스템 중 MapReduce에 해당하는 기능을 대체할 수 있는 것이 Spark라고 했었다. 스파크가 빠른 이유는 빅데이터의 In-Memory 연산이 가능하기 때문이다. - 다음은 스파크 클러스터의 구조이다. SparkContext가 있는 Driver Program, Cluster Manager, Work Node의 3가지로 나눌 수 있다. Driver Program은 사용하는 컴퓨터를 말하고 python 같은 스크립트로 task를 정의한다. 정의된 task는 Cluster Manager로 넘어가서 분배가 되는데, 하둡이라면 Yarn을, AWS의 경우는 Elastic MapReduce 가 Cluster Manager 역할을 한다. Work Node에서는 CPU 코어 1개당 1개의 Node를 배..

Hadoop 2023.01.10

Apache Spark 환경 설정

1. Anaconda (Python + Jupyter Notebook) 2. Java (19.0.1) 3. Spark (spark-3.2.3-bin-hadoop2.7) => 다운로드 후 로컬디스크 C에서 Spark 폴더를 만든 후 압축 해제 pip install pyspark==3.2.3 4. Hadoop => 2.7.7 다운 후 bin 폴더를 복사해 로컬디스크 C에 Hadoop 폴더를 만든 후 붙여넣기 5. PySpark Anaconda Prompt에서pip install pyspark==3.2.3 6. 환경변수 편집 (java, hadoop, spark) => PYSPARK_PYTHON은 anaconda 창에서 where pip 후 나오는 경로 입력

Hadoop 2022.12.26

Hadoop Ecosystem 정리 #1

- 하둡(Hadoop)은 HDFS(Hadoop Distributed FileSystem)이라는 분산 데이터 저장과 빅데이터 처리 방식인 MapReduce 방식으로 이루어져 있다. 하둡은 HDFS을 파일 시스템으로 두고 MapReduce이 연산 엔진이며 Yarn으로 리소스를 관리한다. - 맵리듀스(MapReduce)는 여러 노드에 task를 분배하는 방법으로 각 프로세스 데이터는 가능한 경우 해당 노드에 저장된다. 맵리듀스는 맵(Map)과 리듀스(Reduce)로 구성된다. Map은 분할, Reduce는 병합이라고 생각하면 된다. 예를 들어 Map은 큰 작업을 64MB단위 블럭으로 분할하여 각 블럭에 대한 연산을 한다. 이후 Map을 수행한 각각의 블럭의 결과 정보를 합치는 작업이 Reduce이다. - HD..

Hadoop 2022.12.20