목록2025/03/10 (4)
엔지니어 블로그
Dict의 정렬은 sorted()를 사용하면 된다.Key 기준 정렬#내림차순dict = {"abc" : 1 , "bsc" : 2 , "csv" : 2}sorted_dict = sorted(dict.items(),reverse=True)#output[("csv",2), ("bsc",2), ("abc",1)]sorted_dict = sorted(dict)#output["abc","bsc","csv"] Value 기준 정렬아래 코드에서 lambda 식 안에 사용된 item[1] 은 k:v 형태에서 value 값을 나타낸다.#내림차순dict = {"abc" : 1 , "bsc" : 3 , "csv" : 2}sorted_dict = sorted(dict.items(),key=lambda item:item[1],r..
환경Ubuntu 22.04AirflowSpark On Kubernetes에러 내용Airflow에서 SparkKubernetesOperator를 사용하고 있는데 Spark가 Postgresql Driver를 찾지 못하는 에러다.py4j.protocol.Py4JJavaError: An error occurred while calling o67.load.: java.lang.ClassNotFoundException: org.postgresql.Driver 해결 과정단순히 postgresql.jar 파일만 구해서 Spark Session 만들 때 설정해주면 될 것 같았다. .config("spark.driver.extraClassPath", "/opt/spark/data/postgresql-42.7.5.jar..
에러 내용TypeError: type Column doesn't define __round__ method spark 코드중에 소수점 표현을 강제하는 내용이 있는데, python의 라이브러리 round를 사용해서 발생 한 내용이다. 해결 방법python의 내장 라이브러리가 아닌 pyspark.sql.functions의 round를 사용하면 된다.from pyspark.sql.functions import rounddf = reduce(lambda df, col: df.withColumn(col, round(df[col], 2)), column_name, df)

링커의 말할 수 없는 비밀본 장은 링커의 존재 이유와 작동 방법에 대해 설명하고 있다. 예를 들어 외부에 정의 된 함수는 정적,동적 라이브러리로 제공 되는데 이 것을 어떻게 가져다 사용할지에 대한 내용이다.링커는 이렇게 일 한다.링커는 컴파일러와 마찬가지로 일반적인 프로그램이다. 컴파일러가 생성한 다수의 대상파일을 묶어 하나의 실행 파일을 생성한다. 링커가 실행파일을 만드는 과정을 다음과 같다.심벌해석 -> 대상파일 묶기 -> 재배치 심벌해석심벌 해석은 참조하고 있는 모듈 간 종속성이 올바르게 설정 되어 있는지 확인한다. 또 외부 심벌에 대한 구현이 어느 모듈이던 하나만 있는지 확인하고 이를 연결하는 역할을 한다.묶기심벌해석이 끝난 대상 파일을 하나로 묶는다.재배치compile 시점에 컴파일러는 참조하..