본문 바로가기
728x90

IT 개인학습/Memo18

Pyspark Apache Spark는 Scala 프로그래밍 언어로 작성되었습니다 또한, PySpark를 사용하면 Apache Spark와 Python 프로그래밍 언어로 RDD(Resilient Distributed Datasets)에 접속하는 데 도움이 됩니다. 이를 위해 Py4j 라이브러리를 활용했습니다. Py4J는 PySpark에 내장된 대중적인 라이브러리이며 JVM 개체를 사용해 Python의 동적인 인터페이스를 허용합니다. PySpark에는 효율적인 프로그램을 쓰는 데 좋은 라이브러리가 꽤 많습니다. 또한 호환되는 외부 라이브러리도 다양합니다. 출처 : https://databricks.com/kr/glossary/pyspark PySpark란 무엇입니까? - Databricks PySpark는 Apache .. 2022. 5. 7.
Encoding 인코딩 인코딩(Encoding)이란? 파일에 저장된 정보의 형태나 형식을 데이터 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태로 변환하는 처리 혹은 그 처리 방식을 말한다. 에서 많이 사용되며, 반대말은 디코딩(decoding)이다. URL 인코딩이란? URL에서 URL로 사용할 수 없는 문자 혹은 URL로 사용할 수 있지만 의미가 왜곡될 수 있는 문자들을 '%XX'의 형태로 변환하는 것을 말한다. 즉, 컴퓨터가 이해할 수 있는 형식으로 바꿔주는것 왜 URL 인코딩을 사용할까? 인터넷을 통해 전송할 수 있는 문자는 오로지 ASCII 문자이기 때문이다. 따라서 ASCII 문자가 아닌 문자는 인터넷을 통해 전송할 수 있는 형태로 변환해줘야 한다. ASCII 문자라 하더라도 예약된 의미를 .. 2022. 5. 7.
Tempfile 사용 이유 프로그램 실행 중 일시적으로 데이터를 저장해야 하거나 많은 양의 데이터로 작업할 때 임시 파일이 필요할 수 있다. 이러한 종류의 파일은 데이터를 영구적으로 저장하고 싶지 않을 때 매우 유용 = 프로그램이 실행되는 동안 파일이나 디렉토리에 데이터를 임시로 쓰고 읽고 저장할 수 있다. 기본적으로 파일은 w+b 모드로 열린다. 즉, 열린 파일을 읽고 쓸 수 있다. 파일이 모든 유형의 데이터와 함께 작동할 수 있도록 바이너리 모드가 사용된다. import tempfile # TemporaryFile with tempfile.NamedTemporaryFile() as temp: print(temp.name) temp.write(...) # TemporaryDirectory with tempfile.Te.. 2022. 5. 7.
정규표현식 💡 위키백과 정규 표현식(正規表現式, 영어: regular expression, 간단히 regexp 또는 regex, rational expression) 또는 정규식(正規式)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어 이다. 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단 https://regexr.com/ RegExr: Learn, Build, & Test RegEx RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp). regexr.com https://regexper.com/ Regex.. 2022. 5. 7.
Deploy 1. 마트화 쿼리 작성(= Jupyter에서 제공할 테이블 코드 작성) 2. Github에 pyspark, DAG 코드 -> PR 리뷰어 설정 후 Slack PR확인 요청, 확인 후 Merge = 다른 배치 영향안주는지 확인해보는 것이 좋음 3. DAG에 추가 수정 있을 경우 Jenkins 배포(배포 전 release 최신버전 필요) Pyspark 쿼리만 변경 시 x DAG 란? 데이터파이프라인을 의미하는 하나의 단위 - 하나 이상의 Task를 가지고 있고, 각각의 task들은 실행 순서를 가지고 실행 Deploy 순서 1. S3에 pyspark script 업로드(= Airflow는 S3에 있는 pyspark 파일을 읽어서 작업) 경로 : Croquis-data-emr-da > application >.. 2022. 5. 7.
Jenkins 젠킨스 Jenkins - CI/CD 툴 CI/CD - 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법 Continuous Integration(개발자를 위한 자동화 프로세스인 지속적인 통합하는 것) Continuous Delivery(지속적인 서비스 제공 및 지속적인 배포가능한 상태를 유지하는 것) 1. 자동화된 방식으로 연속적인 데이터 통합 작업을 실행할 수 있는 Java 기반 오픈 소스 서버입니다. 2. 데이터 통합을 촉진하고 소프트웨어 프로젝트를 위한 데이터의 안전한 전달을 보장합니다. 또한 프로젝트 구축, 테스트 및 배포와 관련된 다양한 작업을 자동화합니다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 .. 2022. 5. 7.
SQL SQL 읽히는 순서 FROM : 각 테이블 확인 ON : 조인 조건 확인 JOIN : 테이블 조인 (병합) WHERE : 데이터 추출 조건 확인 GROUP BY : 특정 칼럼으로 데이터 그룹화 HAVING : 그룹화 이후 데이터 추출 조건 확인 SELECT : 데이터 추출 DISTINCT : 중복 제거 ORDER BY : 데이터 정렬 CASE조건 SELECT Price, IF (Price > 30, 'Expensive', 'Cheap'), CASE WHEN Price < 20 THEN '저가' WHEN Price BETWEEN 20 AND 30 THEN '일반' ELSE '고가' END FROM Products; ## switch 문 방식 ''' 조건을 부여할 수는 없고 컬럼의 값만 체크하여 값을 반환할.. 2022. 5. 7.
Airflow Airflow - workflow관리 툴 Airflow는 Python 코드로 워크플로우(workflow)를 작성하고, 스케쥴링, 모니터링 하는 플랫폼입니다. Airflow를 통해서 데이터엔지니어링의 ETL 작업을 자동화하고, DAG(Directed Acyclic Graph) 형태의 워크플로우 작성이 가능합니다. 이를 통해 더 정교한 dependency를 가진 파이프라인을 설정할 수 있습니다. 또한 AWS, GCP 모두 Airflow managed service를 제공할 정도로 전세계 데이터팀들에게 널리 사용되고 있으며 그만큼 넓은 커뮤니티를 형성하고 있습니다. Apache Airflow는 자동화된 워크플로를 예약하는 기능도 제공합니다. 즉, 사람의 개입 없이 워크플로가 지정된 시간에 실행됩니다. 따라서 .. 2022. 5. 7.
728x90