TL ; DR
SageMaker Studio習得のためabaloneを使い自分のデータでやってみたところ、使いこなすのに物凄い時間がかりました。解決法がネットになく、色々勉強しかなり遠回りしてしまったので、もし同じ境遇の方のお役に立てば幸いです。数回に分けて、エラーをどうやって解消したかを記載しています。
エラー
ImportError: Missing optional dependency 'fsspec'. Use pip or conda to install fsspec.
prepsocess.pyの中で、上記エラーが発生。
簡単にpip install fsspecで解決かと思ったら、全然解決しない。。。
情報を探すも、どうもぴったりなものがなく、多くは英語なので途方に暮れました。。。
解決法
preprocess.pyで以下を訂正
誤:df = pd.read_csv("s3://MyDirectory/MyDataset.csv")
正:df = pd.read_csv(f"{base_dir}/input/MyDataset.csv")
MyDirectory:S3の保存場所
MyDataset:自分のデータセット(csv形式)
base_dir = opt/ml/processing
背景
preprocess.pyの中で、S3に直接データセットを取りに行ったのが原因のようでした。
色々と調べた結果、opt/ml/processingはコンテナにあるので、そこからS3に直接取りに行くのはNGと理解しました。
補足情報
別途、記述しますがSageMaker Studioでは3つの異世界?が存在します。
1つ目はos.getcwd()で表示される世界(EFSのこと)
2つ目はopt/mlのコンテナの世界
3つ目はS3の世界
そこが最初はなかなか理解できずに、混乱しました。
1つ目の世界でdfとして読込したのに、2つ目の世界ではdf not definedとエラーが出るので???状態でした。
参考
Amazon SageMaker Pipelines を実際に使ってみた【前編】[re:Invent 2020]
Amazon SageMaker Pipelines を実際に使ってみた【後編】[re:Invent 2020]
Amazon SageMaker Pipelineを動かしてみた