728x90
반응형

분류 전체보기 256

pandas dataframe에 row 추가하기

mem_no prd_no 0 100 1000 1 200 2000 위와 같은 df라는 이름의 DataFrame이 있을 때 한 행을 추가하고 싶을 수 있다. 이 때는 아래와 같이 진행하면 된다. import pandas as pd list1 = [300, 3000] df2 = df.append(pd.Series(list1, index=df.columns), ignore_index=True) df2 위와 같이 처리하면 한 행이 추가된 것을 확인할 수 있다. 참고 emilkwak.github.io/dataframe-list-row-append-ignore-index

airflow에서 sql_sensor 사용하기

sql_sensor는 airflow에서 sql 조회 결과에 따라서 다음 task로 넘어갈지 여부를 체크하는 작업입니다. wait_sql = SqlSensor( task_id = 'wait_sql', conn_id='oracle_db', sql=""" select 1 from BATCH_TABLE where batch_nm = '{batch_nm}' and batch_date = '{batch_date}'""".format(batch_nm = 'ORDER', batch_date = current_part_date), poke_interval=wait_poke_intervql, timeout=wait_timeout, dag=dag ) poke_interval은 얼마 주기로 쿼리를 실행할지 정하는 것입니다.시..

spark에서 oracle로 데이터 입력 시 ORA-01861 오류가 발생할 때

pyspark에서 oracle로 데이터를 넣을 때 아래과 같은 에러가 발생할 때가 있다. ORA-01861 : 리터럴이 형식 문자열과 일치하지 않음 직접적인 원인은 spark의 데이터 타입과 오라클의 데이터 타입이 일치하지 않는 경우에 발생한다. 필자와 같은 경우에는 날짜타입의 컬럼일 때 위와 같은 에러가 발생했다. 이 문제를 해결하기 위해서는 spark에서 data frame의 컬럼의 데이터 타입을 변경해야 한다. 수정 전에 DF의 컬럼 타입을 보면 아래와 같다. DataFrame[visit_dt : string] spark에서 날짜타입이 string일 때 timestamp로 변경하면 oracle의 컬럼이 date 타입일 때 문제가 해결된다. 데이터 타입을 수정하는 방법은 아래와 같다. df_rslt ..

measure와 metric의 차이

measure : 측정값 metric : 측정항목 metric은 measure에서 파생된 용어라고 볼 수 있다고 한다. 즉, 같은 의미로 써도 된다는 것으로 볼 수 있다. 하지만 아래 정의를 보며 궂이 나누자면 measure는 측정하는 값 자제에 중심을 두고, metric은 측정하는 항목에 중심을 둔다고 볼 수 있을 것 같다. A measure As defined in the Merriam-Webster dictionary, a measure is “an amount or degree of something.” Let’s have a look at an example to make things clear: As a result of a quantification we have two measures: “..

번역 2021.01.08

spark에서 pandas 대신 databricks의 koalas 이용하기

pandas는 spark에서 분산 병렬 처리가 되지 않기 때문에 대용량 데이터를 다루기에는 한계가 있다. 그렇다고 spark의 dataframe을 이용하면 pandas에 비해서 기능이 부족하거나 불편한 경우가 있다. 이런 경우에는 databricks에서 만든 koalas를 이용하면 된다. koalas는 분산 병렬처리가 가능하고, 문법도 pandas와 유사해서 어려움 없이 이용할 수 있다. 아래는 koalas를 이용해 df의 describe() 함수를 이용하는 방법이다. import databricks.koalas as ks sdf = spark.sql("select cnt from table") # koalas df로 변환 kdf = sdf.to_koalas() kdf.describe() ##결과 cou..

728x90
반응형