본문 바로가기

전체 글218

Pillow image mode Pillow image mode 이미지의 mode이미지는 픽셀의 유형과 깊이를 정의하는 문자열입니다. 각 픽셀은 비트 심도의 전체 범위를 사용합니다. * 1비트 픽셀의 범위는 0-1이고 * 8비트 픽셀의 범위는 0-255입니다. 일반적으로 이미지는 RGB입니다. 즉, 3개의 채널이 있습니다. 이것은 일반적으로 각 픽셀이 3바이트의 저장 공간을 차지함을 의미합니다. 하나는 빨간색, 하나는 녹색, 하나는 파란색입니다. 모드 이미지가 있는 경우 P이는 팔레트화되었음을 의미합니다. 즉, 최대 256개의 다른 색상을 포함하는 팔레트가 있으며 각 픽셀에 대해 R, G 및 B에 대해 3바이트를 저장하는 대신 팔레트에 대한 인덱스인 1바이트를 저장합니다. 이것은 장점과 단점을 모두 제공합니다. 이점은 이미지에 메모리 .. 2022. 5. 7.
Python 내장함수 및 라이브러리 #for 반복문으로 2차원 리스트 만들기 a = [] # 빈 리스트 생성 for i in range(3): line = [] # 안쪽 리스트로 사용할 빈 리스트 생성 for j in range(2): line.append(0) # 안쪽 리스트에 0 추가 a.append(line) # 전체 리스트에 안쪽 리스트를 추가 print(a) [[0, 0], [0, 0], [0, 0]] # for문 줄이기 a = [[0 for j in range(2)] for i in range(3)] [[0, 0], [0, 0], [0, 0]] #리스트 원소 개수만큼 리스트 만들기 a = [3, 1, 4, 3, 5] # 가로 크기를 저장한 리스트 b = [] # 빈 리스트 생성 for i in a: # 가로 크기를 저장한 리스트.. 2022. 5. 7.
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.