2017-11-10 179 views
1

我這裏有AWS雅典娜無法爲.csv整數轉換爲表值

Joe, 30, Male, 3 
Winston, 40, Male, 7 
Emily, 18, Female, 5 
Wendy, 32, Female, 4 

一個簡單的CSV文件,我上傳到AWS的S3桶。然後,使用雅典娜,我創建了一個表

  • 正確的S3存儲路徑
  • 格式爲* .csv數據formt
  • 列,name string, age int, gender string, consumed int

表創建成功,但是當我查詢它只有namegender在那裏。所有條目的列爲ageconsumed。有任何想法嗎?

+0

描述表顯示是什麼? http://docs.aws.amazon.com/athena/latest/ug/ddl/describe-table.html –

+0

'名\t string' '年齡\t int' \t '性別\t string' \t '消耗\t INT ' –

+0

請發佈DESCRIBE的實際輸出。還發布您正在運行的查詢。 –

回答

1

空格是沒有得到您想要的值定義的數據類型的原因。只是爲了測試的搖動,嘗試製作一切字符串並打印它們,您也會在打印的值中看到空格。

我的第一選擇是從數據本身中刪除空格。但是,如果從數據中刪除空格不是微不足道的,您可以保持原樣,並將這些列創建爲字符串。然後你可以在內部將它們轉換爲int,方法是首先刪除所有空格,然後轉換爲int。例如,

select cast(replace(age, '<whitespace>') as int) from <tablename> 

替換將從您的字符串中刪除所有空白。然後強制轉換將字符串轉換爲整數。 消耗可以做同樣的事情。