亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Athena 為鑲木地板文件中的時間戳字段返回錯誤值

Athena 為鑲木地板文件中的時間戳字段返回錯誤值

眼眸繁星 2023-04-18 16:21:12
我主要在這里重現我在forum.aws上看到的一個問題,希望 stackoverflow 社區的答案/解釋比論壇上的討論更徹底、更有啟發性。這是我對這個問題的經驗:我使用 pandas 從 python 中的數據幀制作了一個鑲木地板文件,并將一個字段/列說生日作為datetime64[ns]使用pandas.to_datetime. 這部分過程似乎完美無缺,因為我可以使用讀取鑲木地板文件pandas.read_parquet并獲得我期望的結果,即在日期時間中輸入的日期。但是,當我將所述鑲木地板文件加載到 AWS 并在athena其上放置一個表格時,讀取相同的生日列會產生與鑲木地板文件中的日期完全不匹配的垃圾日期。例如t = pandas.DataFrame([['Haiti',pandas.to_datetime('1804-01-01')]],columns=['Country','Independence'])t.to_parquet("s3://<mybucket>/tmp/t.parquet")|Country | Independence||--------|-------------||Haiti   | 1804-01-01  |CREATE EXTERNAL TABLE IF NOT EXISTS default.mytable (  `Country` string,  `Independence` timestamp )ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'WITH SERDEPROPERTIES (  'serialization.format' = '1') LOCATION 's3://<mybucket>/tmp/'TBLPROPERTIES ('has_encrypted_data'='false');SELECT * FROM "default"."mytable" limit 10;|Country | Independence             ||--------|--------------------------||Haiti   |-164033-12-18 00:00:00.000|
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

您可以使用“coerce_timestamps”強制 to_parquet 以 Athena 可以理解的格式寫入:


t = pandas.DataFrame([['Haiti',pandas.to_datetime('1804-01-01')]],columns=['Country','Independence'])

t.to_parquet("s3://<mybucket>/tmp/t.parquet", coerce_timestamps='ms')

|Country | Independence|

|--------|-------------|

|Haiti   | 1804-01-01  |

CREATE EXTERNAL TABLE IF NOT EXISTS default.mytable (

  `Country` string,

  `Independence` timestamp 

)

ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'

WITH SERDEPROPERTIES (

  'serialization.format' = '1'

) LOCATION 's3://<mybucket>/tmp/'

TBLPROPERTIES ('has_encrypted_data'='false');


SELECT * FROM "default"."mytable" limit 10;

|Country | Independence          |

|--------|-----------------------|

|Haiti   |1804-01-01 00:00:00.000|


查看完整回答
反對 回復 2023-04-18
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號