개발자
데이터 분석가 준비중인 대학생입니다 올해3학년이고 python이랑 r은 써서 기본적인 통계분석과 머신러닝정도는 할줄압니다 채용공고를 보다보니 아파치 스파크나 에어플로우 등을 능숙하게 사용할줄 아는게 좋을거 같아서 공부를 해보려는데 뭐가 뭔지 모르겠습니다 지금까지는 이론 배우고 코랩 rstudio 실습 이정도만 해서 배우는데 문제는 없었는데 인터넷에 검색해도 갑자기 확 어려운 개념들이 있고 파이썬 다룰줄 아는 능력이랑 무슨 상관이 있는지 감이 안잡힙니다 어떤 느낌인지 간단하게 설명해주실수 있으신가요? 추가로 어떤걸로 공부하면 좋을지 추천부탁드립니다. 감사합니다.
답변 3
인기 답변
안녕하세요, 아파치 스파크는 '분산처리엔진'이라고 불리는 도구들 중에 하나입니다. 어떤 데이터의 처리를 분산된 여러 컴퓨터에서 수행될 수 있도록 코드를 만들어서 제공했다라고 이해하실 수 있으실 것 같은데요. 1부터 9까지 더한다고 하고, 더하는 작업이 매우 오래 걸려서 3개의 컴퓨터를 사용해 작업을 처리한다고 가정해보겠습니다. 여기서 스파크는 '분산 더하기'라는 기능을 제공합니다. 그 기능을 사용해 계산하면, 내부적으로는: Phase1 - 컴퓨터1: 1, 2, 3을 더해 6을 구함 - 컴퓨터2: 4, 5, 6을 더해 15를 구함 - 컴퓨터3: 7, 8, 9를 더해 24를 구함 Phase2 3개의 중간 결과값을 컴퓨터1(랜덤)에 모아서 - 컴퓨터1: 6, 15, 24를 더해 45를 구함 결과적으로 컴퓨터1이 45를 리턴합니다. Phase1이 병렬로 처리되기에 '느린' 더하기를 '분산 더하기' 기능으로 빠르게 해줍니다. 관련되어 Map, Reduce라는 핵심 개념이 존재하는데요. 좀 더 구체적인 사항들은 아래 제 블로그를 참고하셔도 좋을 것 같습니다 :) - https://kadensungbincho.tistory.com/114
인기 답변
안녕하세요. 데이터 리차드입니다. 아파치 스파크는 아파치 재단에서 제공하는 오픈 소스 소프트웨어로 데이터를 병렬 분산 처리하는데 사용하는 도구입니다. 즉 파이썬의 판다스나 넘파이가 하는 일을 한 10배에서 100배정도 빠르게 처리하는 소프트웨어라고 보시면 됩니다. 왜 더 빠르게 처리하는게 중요할까요? 이제는 데이터의 크기가 정말 무한정으로 크기 때문입니다. 옛날에 호미로 하면 되는일을 이제 트랙터로 해야하는 시대가 온 것이죠. 점점 더 많은 데이터 도구들이 스파크를 사용하고 있습니다. 대표적인 도구들이 AWS, Azure, GCP로 대표되는 클라우드 도구들입니다. 에어플로우는 또다른 오픈소스로 데이터 분석 및 처리를 스케쥴링하는 도구라고 보시면 됩니다. 말그대로 순서에 따라 예약하고 자동으로 처리되도록 만드는 소프트웨어입니다. 더 궁금한 내용은 공식 문서에 잘 나와있으니 한번 살펴보시길 바래요 :) 아파치 스파크: https://spark.apache.org/documentation.html 에어플로우: https://airflow.apache.org/docs/
일반적으로 Apache Spark를 다루는 직무는 데이터 분석가보다는 데이터 엔지니어링/운영 업무에서 주로 다루고 Apache Spark는 R/Python/Scala/Java 언어로 구동되는 데이터 분산 병렬 처리 도구입니다. Apache Spark가 주로 사용되는 용도는 데이터 파이프라인 만들 때 ML/DL에서 데이터 전처리나 배포 전 psedo code 수준에서 사용됩니다. 저도 데이터분석/AI개발 업무를 해봤지만 Apache Spark는 많이 다뤄본적은 없었습니다. 데이터 분석가를 목표로 한다면 DBMS, EDA, 자료구조 알고리즘 등의 공부를 추가로 하시면 될 것 같습니다. 아래 링크를 통해 자세한 안내 도와드리겠습니다 https://naver.me/5Vliudns
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 03월 20일
Apache Spark는 대용량 데이터 처리를 목적으로 만들어진 오픈소스 클러스터 컴퓨팅 시스템입니다. 즉, 거대한 데이터셋을 여러 컴퓨터가 동시에 처리할 수 있도록 하는데 사용됩니다. 다양한 언어지원(Python, Java, Scala 등)을 제공하며 빠른 속도와 일반적인 프로그래밍 모델을 갖추고 있어, 대규모 데이터 처리 작업에 이상적입니다. Spark는 크게 다음의 네 가지 주요 컴포넌트로 구성되어 있습니다: 1. Spark Core: 기본 엔진이자 공유 메모리 및 스케줄링 기능을 지원합니다. 2. Spark SQL: SQL과 빅데이터 분석 작업을 수행할 수 있게 합니다. 3. Spark Streaming: 실시간 데이터 스트림 처리를 가능하게 합니다. 4. MLib(Machine Learning Library): 머신러닝 알고리즘을 활용해 데이터 분석 작업을 지원합니다. Python 등의 프로그래밍 언어를 통해 Spark API를 사용하면 복잡한 분산처리 작업이나 알고리즘 개발, 빅데이터 분석 등의 작업을 쉽게 접근할 수 있습니다. 따라서 대용량 데이터를 다루는 데이터 과학자나 분석가, 엔지니어 등에게 매우 유용합니다. 다만 Spark는 분산 컴퓨팅 환경에서 운영되기 때문에 기본적인 네트워킹과 시스템 지식이 필요합니다. 또한, 실제로 제대로 활용하기 위해서는 Spark의 동작 원리와 아키텍처에 대한 이해가 필요합니다. 시작은 어렵겠지만 한번 익혀두면 많은 도움이 될 것입니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!