python3 pyodbc spark(linux)에서 odbc driver 오류가 발생합니다.... sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so' : file not found (0) (SQLDriverConnect)")

조회수 591회
driver = driver = 'FreeTDS'
또는
driver = 'SQL+Server+Native+Client+11.0'
engine = sqlalchemy.create_engine("mssql+pyodbc://"+username+":"+password+"@"+server+"/"+db+"?driver="+driver, echo=False)
df_result.to_sql('table name', schema="schema name", con=engine, if_exists='append', index=False)

위처럼 pandas의 dataframe을 mssql에 insert하려고 합니다. 헌데 로컬 환경인 windows10에서는 정상적으로 connect 되어 insert 되었는데 spark 리눅스 환경에서 진행하니까 아래처럼 오류가 발생합니다.

File "test.py", line 142, in <module>
    df_result.to_sql('table name', schema="schema name", con=engine, if_exists='append', index=False)

sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so' : file not found (0) (SQLDriverConnect)")
(Background on this error at: http://sqlalche.me/e/dbapi)

원인이 뭘까요? odbcinst -j 은 아래와 같습니다.

odbcinst -j
unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/innodep/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

  • Can't open lib '/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so' : file not found <= 리눅스 라이브러리 설치하세요. 정영훈 2020.6.19 09:01
  • "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)" 김재민 2020.6.19 14:51
  • 이런 오류 상태에서는 어떤걸 고쳐야하나요? 김재민 2020.6.19 14:51

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)