前提・実現したいこと
AWS Lambdaでcsvファイルを作成しs3のパケットにアップロード。AWS athenaで作成したパケットを基にテーブルを作成し、Quicksightを用いてデータの可視化を行うシステムを作成しています。
発生している問題・エラーメッセージ
AWS athenaでクエリを実行しようとすると、結果が表示されません。
該当のソースコード
csvファイル作成、s3にアップロードするプログラム。
python
1 2 # データ 3 header = ["id","day","air_temp","humidity","co2"] 4 date_value = pd.to_datetime(PLC_Time) 5 datas = [int(sensor_id),date_value,Decimal(air_temp),Decimal(humidity),Decimal(co2)] 6 bucket.download_file(savepath,filepath) 7 # 書き込み 8 with open(filepath, 'a', newline='', encoding='utf-16') as f: 9 writer = csv.writer(f,dialect='excel') 10 writer.writerow(datas) 11 bucket.upload_file(filepath,savepath) 12
s3に保存されたcsvファイル 保存先はs3/バケット名/sensordata.csv
id,day,air_temp,humidity,co2 14,2022-01-06 11:11:11,22.2,33.3,111 15,2022-01-06 11:11:11,22.2,33.3,111 16,2022-01-06 11:11:11,22.2,33.3,111 17,2022-01-06 11:11:11,22.2,33.3,111
athenaでテーブルを作成した際に用いたsql記述。
クエリは成功し、テーブルも作成される。
sql
1CREATE EXTERNAL TABLE IF NOT EXISTS default.sensordata( 2 id int, 3 day timestamp, 4 air_temp decimal, 5 humidity decimal, 6 co2 decimal 7) 8ROW FORMAT SerDe 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 9WITH SerDeProperties ("field.delim" = ",", "escapeChar"="\", "quoteChar"="\"") 10STORED AS TEXTFILE 11LOCATION 's3://バケット名/' 12TBLPROPERTIES ('has_encrypted_data'='false', 'skip.header.line.count'='1')
athenaで実行したselect文。
実行すると上記したように、何も表示されない
sql
1SELECT * 2FROM default.sensordata 3LIMIT 100;
試したこと
dataの書式がエクセルに対応してないのが原因と予想し、pythonのプログラムのdialectを'excel-tab'に変更したが、結果は表示されなかった。
athenaのテーブル作成の時に用いる型が文字列型(string)の時に限って、値が表示された。
補足情報
pythonのバージョンは3.8です。
リージョンはオハイオ、課題発生日は2022/1/9です。
プログラミング初心者で、コードも拙いところが多々あるとは思いますが、ご教授いただけると嬉しいです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー