개발하자

주피터 SQL 셀의 Python 변수

Cuire 2023. 3. 17. 19:04
반응형

주피터 SQL 셀의 Python 변수

쿼리의 결과 집합과 결합해야 하는 데이터 프레임이 있습니다. 쿼리는 데이터 프레임의 열을 사용하여 데이터베이스의 데이터를 필터링합니다.

data_list = list(df['needed_column'])

Jupyter sql cell에서 실행되는 sql 쿼리에서 변수를 사용하고 싶습니다.

%%sql
SELECT
    column_1,
    column_2,
    column_3
FROM my_database.my_table
WHERE
    column_1 IN data_list

이것을 할 수 있는 방법이 있나요?




Jupysql을 통해 할 수 있습니다. 로컬 변수를 가져와서 사용하는 간단한 예가 있습니다.

그래서 기본적으로:

dynamic_limit = 5
dynamic_column = "island, sex"
%sql SELECT {{dynamic_column}} FROM penguins.csv LIMIT {{dynamic_limit}}



해결 방법은 쿼리를 변수로 인라인으로 실행하는 것입니다.

data_list = str(list(df['needed_column']).replace('[', '(').replace(']', ')')

query_string = f"""
SELECT
    column_1,
    column_2,
    column_3
FROM my_database.my_table
WHERE
    column_1 IN {data_list}
"""

result_set = %sql $query_string

반응형