목록에러와 마주했을때 (6)
엔지니어 블로그
작업 내용Spark에서 MinlO의 csv를 읽음에러 내용java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3a.S3AFileSystem not found해결 방법에러 내용을 보니 Spark가 S3A 파일 시스템을 인식할 수 있는 JAR가 없다는 내용이다. 따라서 Spark Container내에 JAR파일을 추가하여 해결할 수 있을 것 같다. 그리고 Spark 세션에 jar 파일들을 config 해주면 해결된다. .config("spark.jars", "/root/metastore/hadoop-aws-3.3.4.jar") \ .config("spark.jars","/root/metastore/aws-java-sdk-bundle-1.1..
환경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)

문제상황현재 spark에서 Cloud Storage로 parquet를 업로드 중이다. 근데 업로드 할 때마다 새로운 폴더가 생성되고 그 하위에 parquet가 저장되어 BigQuery에서 다수의 parquet를 동시에 읽을수가 없다. 동일한 경로를 지정하면 already exist 에러가 발생했다. 그래서 찾아본 것이 .mode("append") 옵션이다. 해결간단하게도 spark가 CloudStroage에 parquet를 저장할 때 옵션 하나만 추가해주면 된다.df.write.mode("append").format("parquet").save(parquet_path) 이후 다시 parquet를 추가해보면 아래처럼 한 폴더에 여러 parquet가 저장될 수 있다.
Spark on k8s 실행을 위해 이미지 빌드 후 실행을 하니 다음과 같은 에러가 발생했다.Exception in thread "main" io.fabric8.kubernetes.client.KubernetesClientException: JcaPEMKeyConverter is provided by BouncyCastle, an optional dependency. To use support for EC Keys you must explicitly add this dependency to classpath 찾아보니 Spark Kubernetes Cluster에 대해 Spark의 Scala 셸을 사용하기 위해서는 BouncyCastle이 외부 종속성으로 포함되어야 한다고 한다. 따라서 외부 종속성을 JA..

문제상황python 에서 postgresql을 사용하기 위해 패키지 설치 중 발생한 에러다.가만 읽어보면 pg_config executable not found. 가 보인다.시스템에 postgresql이 설치가 되지 않아 pg_config가 존재하지 않는 것으로 보인다. *pg_config는 psql의 정보가 있는 파일이다. 해결방법해결 방법은 시스템에 postgresql을 설치해주면 된다.나의 경우 ubuntu 환경이기 때문에 apt install postgresql 로 설치 후 해결했다.