問題タブ [python-s3fs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 現在の日付に基づく S3 キーへの書き込み
S3FileSystem
Pythonで使用してS3でcsvを書き込もうとしています。書き込むたびに、現在の日付のキー ('%Y-%m -%d') データが日付ごとに編成されるようにします。このように、データは日付ごとに整理され、同じ日に新しいキーは作成されないと考えていました。
しかし、私は実行されているように見えます。以下のコードを今日の日付 (2021-03-17) に実行すると、初めてこのキー2021-03-17
が作成されます。2021-03-18
同じ日に実行していても、次回は新しいキーが作成されます。
誰でもこれを解決する方法を提案できますか?
以下の完全なコード
アップデート
これは実際に機能します。日付は UTC だったので、現地の日付は同じでしたが、日付が UTC で変更され、混乱が生じました。
python - S3FS を使用して TFX パイプラインで S3 バケット オブジェクトにアクセスする
S3 バケットからの入力として画像を含む TFX パイプラインを構築しています。TF Transform コンポーネントのステップで、TFX の SparseTensor 形式で保存された URL を使用して、一連の画像を読み込もうとしています。私はパイプラインの他のコンポーネントにそれを使用しており、Boto3 と S3FS の両方を一緒に使用すると問題が発生する可能性があると聞いたので、S3FS Python モジュールを使用してそうしようとしています (これは私が思うポイントのそばにあります)。
とにかく、S3 バケットへの接続を確立し、画像を読み込もうとしています。これが私のコードです(または、少なくとも問題に関連していると思われる部分):
これを実行すると、無効な文字を含むバケットにアクセスしようとしたときに見た標準的なエラー メッセージが表示されます。
ParamValidationError: パラメーターの検証に失敗しました: 無効なバケット名 "SparseTensor(indices=Tensor("inputs": バケット名は正規表現 "^[a-zA-Z0-9.-_]{1,255}$" と一致するか、一致する ARN である必要があります)正規表現 "^arn:(aws). :(s3|s3-object-lambda):[az-0-9]+:[0-9]{12}:accesspoint[/:][a-zA-Z0 -9-]{1,63}$|^arn:(aws).: s3-outposts:[az-0-9]+:[0-9]{12}:outpost[/:][a-zA -Z0-9-]{1,63}[/:]アクセスポイント[/:][a-zA-Z0-9-]{1,63}$"
このエラーは、問題が行にあることを示しているwith s3.open(str(inputs[key]), 'rb') as f:
ため、S3 URL を正しく表す必要があります。URL は、元の CSV データセットのimage_pathbucket_name\key\file.jpg
という列に形式で格納されます(上記のコードで として表されるこの時点の前に SparseTensor に変換されます)。inputs[key]
問題は SparseTensor 形式ではなく、URL にあると思います。