web-dev-qa-db-ja.com

python jupyterノートブックを毎日自動的に実行する方法

python jupyterノートブックにコードがありますが、これを毎日実行する必要があるので、これを設定する方法があるかどうかを知りたいので、本当に感謝しています

11
Betsy Curbelo

より高品質にしたい場合は、エアフローと組み合わせるのが適切です。 Dockerイメージにパッケージ化しました https://github.com/michaelchanwahyan/datalab

これは、オープンソースパッケージnbparameterizeを変更し、execution_dateなどの引数を渡すことで統合されます。 グラフはその場で生成できます出力はノートブック内で更新および保存できます。

実行されるとき

  • ノートブックが読み取られ、パラメーターが挿入されます
  • ノートブックが実行され、出力が元のパスを上書きします

また、spark、keras、tensorflowなどの一般的なツールもインストールおよび設定しました。

0
Icarus

更新
最近、ノートブックの実行とパラメータ化を行うための製紙工場に出会いました。

https://github.com/nteract/papermill

papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1

パラメータを使用できるため、nbconvertよりも優れているようです。スケジューラーでこのコマンドをトリガーする必要があります。以下は、Ubuntuでのcronの例です。


古い回答

nbconvert --execute

jupyter Notebookを実行できます。これはcronjobに組み込まれているため、必要な処理を実行できます。

Ubuntuでの設定例:

次の内容でyourscript.shを作成します。

/opt/anaconda/envs/yourenv/bin/jupyter nbconvert \
                      --execute \
                      --to notebook /path/to/yournotebook.ipynb \
                      --output /path/to/yournotebook-output.ipynb

--to Notebook以外のオプションがあります。後で完全に実行可能な「ログ」ファイルがあるため、このオプションが気に入っています。

仮想環境を使用してノートブックを実行することをお勧めします。これにより、今後の更新でスクリプトが混乱するのを防ぐことができます。 nbconvertを環境にインストールすることを忘れないでください。

次に、毎日実行されるcronjobを作成します。午前5:10に、ターミナルでcrontab -eと入力して、次の行を追加します。

10 5 * * * /path/to/yourscript.sh
20
Zephro

SeekWell Chrome Extension を試してください。Jupyterノートブックから直接、毎週、毎日、1時間ごと、または5分ごとに実行するようにノートブックをスケジュールできます。DataFramesを直接送信することもできます。必要に応じて、スプレッドシートまたはSlackに移動します。

デモビデオ があり、上記のChromeウェブストアリンクにも詳細があります。

**開示:私はSeekWellの共同設立者です

2
Thabo

パラメータを使用してJupyterノートブックを実行するには、 Papermill を使用します。また、MarkdownファイルまたはPythonスクリプトを Jupytext とする)としてノートブックを共有/バージョン管理すると便利です。その後、nbconvertを使用してノートブックをHTMLファイルに変換します通常、私のワークフローは次のようになります。

cat world_facts.md \
| jupytext --from md --to ipynb --set-kernel - \
| papermill -p year 2017 \
| jupyter nbconvert --no-input --stdin --output world_facts_2017_report.html

ノートブックの実行が期待されるPython環境の指定方法、ノートブックでの継続的統合の使用方法など、上記の詳細については、私の記事をご覧くださいJupyterノートブックで自動化されたレポート(JupytextとPapermillを使用)は、 MediumGitHub 、または Binder 。記事のコマンドの結果をインタラクティブにテストする場合は、バインダーリンクを使用します。

1
Marc Wouts

cronjobにjupyterノートブックを追加できます

0 * * * * /home/ec2-user/anaconda3/bin/python /home/ec2-user/anaconda3/bin/jupyter-notebook

/ home/ec2-user/anaconda3をanacondaのインストール場所に置き換える必要があり、cronの要件に基づいて時間をスケジュールできます。

0