Azure / Azure/MachineLearningNotebooks

PipelineParameter parses my timestamp strings

オープン
#1,402 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る
ADO Data4ML Pipelines product-issue
主要言語
Jupyter Notebook
スター
4.4k
フォーク
2.6k
PR マージ指標
30日以内にマージされた PR はありません

説明

I have the following PipelineParameters
```python
train_start_time = PipelineParameter(
name="train_start_time", default_value="2021-01-01T00:00:00"
)
train_end_time = PipelineParameter(
name="train_end_time", default_value="2021-01-31T00:00:00"
)
```
which are passed to my PythonScriptStep as follows:
```python
pipeline_step = PythonScriptStep(
..
arguments=[
"--train_start_time",
train_start_time,
"--train_end_time",
train_end_time,
],
...
)
```
But when I run this in a compute cluster it turns out that the timestamp strings have been parsed, and is passed on to the script in a different format! In `70_driver_log.txt` I see this:
```
[2021-03-23T14:30:23.703839] After variable expansion, calling script [...] with arguments:['--train_start_time', '01/01/2021 00:00:00 +00:00', '--train_end_time', '01/31/2021 00:00:00 +00:00']
```
Iso8601 is the only way to represent time as strings, any other way is abominations! How do I get my pretty strings?

**Edit for extra clarity**:
The problem is that my input string `2021-01-31T00:00:00` gets transformed to `01/31/2021 00:00:00 +00:00` before beeing passed to my script as arguments.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

表示されているタイムスタンプ値を使って PipelineParameter と PythonScriptStep の例を再現し、その後 70_driver_log.txt を調べて、変数展開後の引数を確認します。元の ISO8601 文字列と変換後の値を比較し、その変換がどこで行われているかを追跡します。スクリプトが元のタイムスタンプ文字列を変更せずに受け取れば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
azure, python
領域
machine-learning
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。