반응형
반응형
op_kwargs 와 op_args 이용 두 개의 차이는 op_kwargs는 dict이고 op_args는 list이다. PythonOperator def __init__( self, *, python_callable: Callable, op_args: Optional[List] = None, op_kwargs: Optional[Dict] = None, templates_dict: Optional[Dict] = None, templates_exts: Optional[List[str]] = None, **kwargs, ) op_args 이용 from datetime import datetime from airflow import DAG from airflow.operators.dummy import Dumm..
문제 풀이 a + b + c = 0 인 경우를 찾는 문제이다. 투 포인터를 이용해서 풀었다. 우선 정렬을 한 다음에 for 루프를 돌면서 nums[index] 가 a 라고 할 때 포인터를 이동하면서 b 와 c 값을 찾았다. 문제에서 답에 중복을 허용하지 않기 때문에 중복인 경우는 다시 계산하지 않게 처리했다. [0, 0, 0, 0, 0, 0] 와 같은 인풋이 들어왔을 때 한 번만 계산하고 스킵하게 된다. 시간복잡도는 O(N^2) 이 된다. => 정렬하는 데 O(NlogN) + for 루프 돌면서 b와 c값 찾는 데 O(N^2) 코드 fun threeSum(nums: IntArray): List { nums.sort() val result: MutableList = mutableListOf() for (i..
Airflow 이용하다 보면 특정 task를 다시 실행하고 싶은 경우들이 있다. Task를 재실행하는 법에 대해서 알아보자. Airflow UI 이용 Airflow UI에 접속해서 재실행할 DAG를 클릭하자. Graph View를 클릭하자. 재실행할 Task 클릭하자. Task를 클릭하면 아래와 같은 창이 뜬다. 원하는 옵션을 선택하고 Clear를 클릭하자. Clear를 클릭하면 재실행할 Task를 확인할 수 있다. 맞으면 OK를 클릭해서 Task를 재실행하자. Airflow CLI 이용 command line 이용해서도 동일하게 할 수 있다. airflow tasks clear command를 이용하면 된다. 옵션을 잘 모르겠으면 help 명령어로 사용법을 확인해보자. airflow tasks clea..
Main 스레드에서 3개의 스레드(하나의 Producer 스레드와 두 개의 Consumer 스레드)를 생성하고 작업을 수행한 다음에 수행 시간을 출력해보자. Main public class Main { public static void main(String[] args) { Instant start = Instant.now(); System.out.println("Start"); int totalNumberOfTasks = 3; BlockingQueue queue = new LinkedBlockingQueue(200); ExecutorService executorService = Executors.newFixedThreadPool(totalNumberOfTasks); executorService.subm..