Python - Polars infer_schema_length 오류
목차
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으로 스키마 추론을 해서 특정 작업에서 오류가 발생하지 않았다.
다만 그 과정에서 소폭의 속도 저하는 발생하였다.