やりたいこと
Pythonでexcelファイルを読み込む
VMインスタンスでMatillion内のPythonコンポネントを使用しているという環境
発生したエラー(1)
Pythonでファイルを読み込む際ImportError: Missing optional dependency 'xlrd'
というエラーが発生
解決方法
xlrdモジュールが必要とのことだったので、インストールする
Matillionを動かしているインスタンスのrootでインストールする必要がある
Matillionではpython3を使用しているため(MatillionのデフォルトはPython2)sudo python3 pip install xlrd
でモジュールをインストール
発生したエラー(2)
xlrdをインストールした後、再度Pythonでファイルを読み込んだところraise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
xlrd.biffh.XLRDError: Excel xlsx file; not supported
というエラーが発生
解決方法
xlrdはver2.0.0以降では読み込めるexcelファイルは.xlsのみで.xlsxはサポートしなくなった(潜在的な脆弱性が発見されたため、削除されたとのこと)
そこで、openpyexモジュールをインストールして使用sudo python3 pip install openpyxl
でインストール
ファイルを読み込む際にpd.read_csv(“ファイル名.xlsx”, engine=‘openpyxl’)
とすることで、無事読み込み完了
また、pandasのバージョンを1.2.0以降に指定することでも解決するよう
まとめ
xlrdモジュールはxlsxファイルに非対応になってしまった
xlsxファイルを読み込む際に、openpyxlを使用して解決した
DMP構築のご相談
お気軽にお問い合わせください