❄️
Streamlit in SnowflakeでCSVファイルを書き出す
この記事はSnowflake Advent Calendar 2023のPart2の7日目です。空いてたんで小ネタです。
CSVファイルダウンロードしたい!
みんな大好きCSVファイルでのダウンロード! ChatGPTに効くと↓を教えてくえるけど…
import streamlit as st
import pandas as pd
from io import StringIO
# DataFrameの作成(サンプルデータ)
df = pd.DataFrame({
'column1': [1, 2, 3],
'column2': ['A', 'B', 'C']
})
# DataFrameをCSV形式の文字列に変換
csv = df.to_csv(index=False)
# Streamlitのダウンロードボタンを設定
st.download_button(
label="Download data as CSV",
data=csv,
file_name='dataframe.csv',
mime='text/csv',
)
…がStreamlit in Snowflake(以下、SiS)には、2023年12月07日現在だと制限があってだめ。残念
Streamlit in Snowflakeの制限
2023年12月07日現在、st.download_buttonは未サポート。どこかのタイミングでアップデートで対応するかもしれないけど。
代替案あった
検索したら代替案あった。感謝!
ドキュメントによると…
- ステージにCSVファイルでアンロード(エクスポート)する
- CSVファイルダウンロード用の署名付きURLを生成する
- 署名付きURLを画面に表示する
の流れで対応してる模様。事前にアンロード用のステージは作っておく必要あり(ご利用は自己責任でお願いします)
サンプルはCSVだけど保存時のフォーマットやオプションは↓参照
署名付きURLは↓
出来た!
うれしい。
この記事はSnowflake Advent Calendar 2023の7日目でした。
Discussion