이 영역을 누르면 첫 페이지로 이동
butter_shower 블로그의 첫 페이지로 이동

butter_shower

페이지 맨 위로 올라가기

butter_shower

Computer Engineering

  • butter_shower
파이썬에서 백업 파일 및 임시 파일 생성하는 방법

파이썬에서 백업 파일 및 임시 파일 생성하는 방법

2024.02.20
가끔가다가 파일을 읽고 저장하는 과정에서 오류가 발생할 시 파일이 손상되어 더이상 사용할 수 없게 되는 경우들이 발생할 수 있다. 이를 위해 기존 파일에 대한 백업파일을 생성하고, 임시 파일에서 write 작업을 한뒤 기존 파일로 교체해주는 작업을 해줄 수 있다. 1. 백업 파일 생성하는 방법 파이썬의 shutil 라이브러리 내 .copy 함수를 이용하여 백업 파일을 생성하면 된다. import shutil path = '/path/to/data.pkl' # 임시 및 백업 경로 설정 temp_path = path + '.temp' backup_path = path + '.backup' # 백업 파일 생성 shutil.copy(path, backup_path) 2..
spark에서 conda 가상환경 설정하기 & Jupyter에서 conda 가상환경 설정하기

spark에서 conda 가상환경 설정하기 & Jupyter에서 conda 가상환경 설정하기

2023.10.18
왜 클러스터에 conda 가상환경을 설정해야할까? 클러스터는 수많은 컴퓨터들이 하나의 클러스터로 묶여있어 분산 처리를 하고있다. 만약 새로운 패키지 설치 혹은 기존 패키지 업데이트가 필요한 경우 각각의 컴퓨터에 설치하거나 업데이트를 해줘야하기 때문에 번거로운 작업이면서 기존 버전과 충돌이 발생할 가능성이 존재함 따라서, 클러스터에 프로젝트에 필요한 하나의 독립된 환경을 만들 필요가 있음. conda를 통해 특정 버전의 패키지와 의존성을 포함하는 독립적인 환경을 만들 수 있게 해줌. conda 환경 설정 방법 (spark client 모드에서) 1. conda 환경 생성 및 패키지 설치 서비스가 필요한 서버에 conda 가상환경을 생성해준다. conda create -n my_env python=3.7 2..
파이썬에서 효율적으로 메모리 관리하는 방법 - del, 제너레이터, 가비지컬렉션

파이썬에서 효율적으로 메모리 관리하는 방법 - del, 제너레이터, 가비지컬렉션

2023.07.13
파이썬은 개발자가 직접 메모리를 관리하는 대신 언어 자체가 대부분의 메모리를 관리해 따로 처리할 필요가 없긴 하나, 코드가 길어지거나 다루는 데이터가 방대하거나 메모리 자원이 한정적일 때 파이썬에서도 메모리 사용을 최적화해주는 것이 필요하다. 1. 사용하지 않는 객체 dealloc 메모리 사용량을 줄이는 가장 간단한 방법은 사용하지 않는 객체를 삭제하는 것이다. del 키워드를 사용하여 수행할 수 있다. a = [1, 2, 3, 4, 5, ...., 100000000] # 객체 삭제 del a 더이상 a 객체가 필요하지 않을 때 del 키워드를 사용할 수 있다. 2. 제너레이터 사용 만약 리스트에 많은 양의 데이터가 들어가게 되는 경우 제너레이터를 사용하는 방법도 좋은 고려방안이다. 제너레이터는 필요할때..
Pyspark에서 데이터 파티션 관리방법 - partitionBy()

Pyspark에서 데이터 파티션 관리방법 - partitionBy()

2023.06.28
데이터 파티셔닝은 대용량의 데이터를 처리할 때 중요한 개념이다. 파티셔닝에 관한 자세한 글은 아래 링크를 참고. https://gmlwjd9405.github.io/2018/09/24/db-partitioning.html [DB] DB 파티셔닝(Partitioning)이란 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io Pyspark에서는 DataFrameWriter와 partitionBy() 메소드를 사용하여 데이터프레임을 특정 열 기준으로 파티션할 수 있다. 1. 파티션을 지정하여 새로운 테이블을 생성할 경우 df.write\ .partitionBy('part_date')\ .format('parquet')\ ...
YARN Cluster에 연결된 Spark로 pyspark - Oracle 데이터베이스 연결하기

YARN Cluster에 연결된 Spark로 pyspark - Oracle 데이터베이스 연결하기

2023.06.08
Step 1. OJDBC 드라이버 설정 https://www.oracle.com/kr/database/technologies/appdev/jdbc.html JDBC 드라이버 | Oracle 대한민국 클라우드에서도, 온프레미스에서도, Oracle Autonomous Databases를 활용하면 Java 애플리케이션을 쉽고 빠르게 개발할 수 있습니다. Java 개발자들은 Oracle Autonomous Database, 성능 셀프 튜닝, 고가용성, 인메 www.oracle.com JDBC란? Java Database Connectivity의 약자로, 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API 일관된 방식으로 데이터베이스에 접근할 수 있게 해주므로 구체적인 데이터베이스의 시스템 세부사항을 걱정..
Spark Deploy Mode의 종류

Spark Deploy Mode의 종류

2023.06.07
Spark Deploy Mode의 종류 - Local, Client, Cluster Mode Spark Application은 아래와 같은 환경에서 실행이 가능함 (1) 하나의 서버 Local Mode (2) 클러스터 (ex. YARN, k8s등) Client Mode Cluster Mode 1. Local Mode Spark Driver가 실행한 서버 (local)에서 실행 process 내에 하나 이상의 worker thread가 실행됨 2. Client Mode Spark Driver가 클라이언트 머신에서 실행 사용자의 어플리케이션이 시작된 머신이 Spark Driver를 호스팅, 이 머신에서 SparkContext를 생성 Driver는 클라이언트(spark job을 실행한 서버)에서 실행되고 Ex..
[Pythonic한 코드 작성하기] 파이썬의 자식 프로세스 관리 모듈, subprocess

[Pythonic한 코드 작성하기] 파이썬의 자식 프로세스 관리 모듈, subprocess

2021.04.21
파이썬에서는 자식 프로세스 실행과 관리용 라이브러리를 가지고 있습니다. 따라서 명령줄 유틸리티 같은 도구들을 연계하는데 아주 좋은 언어입니다. 기존 셸 스크립트가 시간이 지나면서 점점 복잡해지면 파이썬 코드로 재작성하여 가독성과 유지보수성을 확보하는 것도 좋은 아이디어입니다. 파이썬으로 시작한 자식 프로세스는 병렬로 실행할 수 있어, CPU코어를 모두 이용해 프로그램의 처리량을 극대화할수도 있습니다. 파이썬 자체는 CPU속도에 의존할 수도 있지만, 파이썬을 사용하면 CPU를 많이 사용하는 작업을 관리하고 조절하기가 쉽습니다. 수년간 파이썬에서는 popen, popen2, os.exec*를 비롯하여 서브프로세스를 실행하는 방법이 여러개 있어왔다. 최근(...이라고 하기도 좀 그렇지만) 파이썬에서 자식 프로..
[Pythonic한 코드 작성하기] Python의 가변 인수(*args)와 키워드 인수에 대해 파헤쳐보자

[Pythonic한 코드 작성하기] Python의 가변 인수(*args)와 키워드 인수에 대해 파헤쳐보자

2021.02.25
c에서는 *args라는 변수로 매개변수를 받습니다. 파이썬에서도 비슷하게 가변 인수를 제공하고있는데요, 이번 시간에는 가변 인수와 키워드 인수에 대해서 어떻게 파이써닉한 코드를 작성할 수 있을지 알아봅시다! 가변 위치 인수로 코드를 깔끔하게 보이게 하자 선택적인 위치 인수, 이런 파라미터들을 관례적으로 *args라고 해서 종종 star args라고 합니다. 이런 가변 인수를 받게 만들면 함수의 호출을 더 명확하게 할 수 있고 읽기 힘든 요소들을 없앨 수 있습니다. 아래와 같은 함수가 있다고 해봅시다. def func(message, value): if not values: print(message) else: values_str = ', '.join(str(x) for x in values) print(..
[Pythonic한 코드 작성하기] 리스트 컴프리헨션 (list comprehension)

[Pythonic한 코드 작성하기] 리스트 컴프리헨션 (list comprehension)

2021.02.03
참고 : 이펙티브 파이썬 1. map과 filter 함수 대신 리스트 컴프리헨션을 사용하자 파이썬에서는 한 리스트를 다른 리스트로 만들어주는 간결한 문법이 있습니다. 이 문법을 사용한 표현식을 리스트 컴프리헨션(list comprehension; 리스트 함축 표현식)이라고 합니다. 예를 들자면 아래와 같습니다. nums = [x for x in range(1, 10)] 간단한 연산에서는 리스트 컴프리헨션이 내장함수 map모다 훨씬 명확합니다. map을 사용하려면 lambda 함수를 사용해야해서 깔끔해보이지 않고, 직관적이지 않습니다. nums = map(lambda x : x, a) 리스트 컴프리헨션에는 조건도 간단하게 작성할 수 있습니다. 짝수만 걸러내는 리스트를 만든다면 아래와 같은 코드가 나옵니다...
파이썬에서 Generator란?

파이썬에서 Generator란?

2021.01.27
파이썬을 그냥 아무생각하지 않고 지내다가 다른 사람들의 코드를 보면 같은 언어가 맞자 싶을 때가 종종 있는 것 같습니다 (ㅎㅎ??) 최근에는 그것이 바로 yield를 만났을 때였는데, Generator라는 친숙하면서도 생소한 개념을 정리하고자 이렇게 글을 남깁니다! Generator란? Generator에 대해서 이해하기 전에 먼저 iterator부터 알고 갑시다! Iterator란? 반복 가능한 객체, 즉 반복문을 활용하여 데이터를 순회하면서 처리할 수 있는 객체를 의미합니다. 아래 예시 코드를 한번 살펴봅시다. >>> a_tuple = (1, 2, 3) >>> b_iterator = iter(a_tuple) >>> print(b_iterator.__next__()) 1 >>> print(b_itera..
파이썬에서 Generator란? (feat. yield 함수)

파이썬에서 Generator란? (feat. yield 함수)

2021.01.09
파이썬을 그냥 아무 생각 하지 않고 지내다가 다른 사람들의 코드를 봤을 때 새로운 예약어를 많이 만나게 됩니다. 최근에는 그때 바로 이 yield 함수를 만났었는데요, Generator라는 익숙하면서도 새로웠던 개념이기 때문에 한번 정리하고자 이렇게 글을 씁니다!! Generator란? Generator에 대해서 이야기하기 전에 Iterator에 대해서 먼저 알고 갑시다. Iterator란? 반복 가능한 객체, 즉 반복문을 이용하여 데이터를 순회하면서 처리하는 것을 의미합니다. 한번 아래 예시를 봅시다. a_tuple = (1, 2, 3) b_iterator = iter(a_tuple) # tuple -> iterable -> iterator 반환 print(next(gen)) print(next(gen..
파이썬에서 노션 API를 사용하여 뉴스 크롤링한 정보를 노션에 업로드하기 (notion-py)

파이썬에서 노션 API를 사용하여 뉴스 크롤링한 정보를 노션에 업로드하기 (notion-py)

2020.12.27
notion-py Unofficial Python3 client for Notion.so API 관련 문서 : pypi.org/project/notion-py/ notion-py (Fork of) Unofficial Python API client for Notion.so pypi.org 파이썬에서 노션을 핸들링할 수 있는 notion-py 라이브러리는 비공식 노션 API를 제공하는 라이브러리입니다. 약간의 코드만 작성하면, 자동으로 노션을 쉽게 핸들링할 수 있기 때문에 매우 간단하고 강력한! API라고 생각합니다. :) 비록 비공식 노션 라이브러리지만, 아직까지 잘 사용되고 있고, 노션에서 나중에 api를 제공할지는 미지수이기때문에 적어도 공식 라이브러리가 나오기 전까지는 유용하게 사용할 수 있지 않을..
  • 최신
    • 1
    • 2
    • 3
    • 4
    • ···
    • 7
  • 다음

정보

butter_shower 블로그의 첫 페이지로 이동

butter_shower

  • butter_shower의 첫 페이지로 이동

검색

메뉴

  • All Categories
  • About Me
  • Guest Book

카테고리

  • 전체보기 (223)
    • 💫 주인장 이야기 (17)
    • 🌱 와글와글뻘글 (27)
    • IT Trends (11)
    • 주인장 일상 (0)
    • 📒 내 마음대로 독서 서평 (12)
    • 머신러닝 꿈나무 (30)
      • 기본 개념 (6)
      • Hands-on! (5)
      • Paper Review (5)
      • 캐린이의 Kaggle (1)
    • 알고리즘 Algorithm (33)
      • PS (8)
    • Computer Engineering (75)
      • Python (8)
      • Cloud Computing (9)
      • C (9)
      • C++ (0)
      • Java (6)
      • Django 장고 (4)
      • 임베디드 시스템 (10)
      • 병렬 처리(Parallel Processing) (9)
      • 데이터 통신 Data communication (4)
      • 유닉스 시스템 (Unix System) (3)
      • GitHub (1)
      • 마이크로 프로세서 (micro processor) (1)
      • 데이터 마이닝 (1)
    • Error Note 🚨 (3)
    • 영어 공부 (6)
      • Live Academy (6)
    • HOBBY (2)
      • Film Log (2)

최근 글

정보

_rian의 butter_shower

butter_shower

_rian

나의 외부 링크

  • Github
  • Facebook
  • Instagram
  • LinkedIn
  • Twitter

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © _rian. Designed by Fraccino.

티스토리툴바