포스트

Python - Polars infer_schema_length 오류

목차

  1. Polars 오류 발생
  2. Polars 오류 원인
  3. Polars 오류 해결방법

Polars 오류 발생

PostgreSQL에서 데이터를 받아와 pl.DataFrame()을 이용해서 DataFrame을 만들고 특정 작업을 할때 오류가 발생했다.
오류 내용은 아래와 같았다.

1
could not append value: "col" of type: str to the builder; make sure that all rows have the same schema or consider increasing `infer_schema_length`

Polars 오류 원인

infer_schema_length는 스키마 추론을 위해 스컌할 최대 행수를 의미하며 기본 값은 100이다.
문제가 되는 col에 Null값과 float가 같이 존재하였는데 기본 값인 100 행 이내에는 전부 Null 값이 들어가게 되는 경우가 존재하였고
이 떄 특정 작업을 진행을 하게 되면 type 문제가 발생하는 것이였다.

Polars 오류 해결방법

모든 컬럼이 100행 이내에 Null이 존재하지 않는다는 보장을 할 수 없었다
DB에서 Null을 다른 값으로 치환할 수 있는 상황도 아니였다.

간편하게 pl.DataFrame(, infer_schema_length=None)으로 설정하면 전체 데이터를 스캔하도록 할 수 있다.
그렇게 되면 해당 col에 대한 정확한 type으로 스키마 추론을 해서 특정 작업에서 오류가 발생하지 않았다.
다만 그 과정에서 소폭의 속도 저하는 발생하였다.