2
我在配置單元中創建表;將值從字符串轉換爲int中的int
create table patients(
patient_id INT,
age_group STRING,
gender STRING,
income_range STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ';
load data local inpath '/mnt/patients.csv' into table patients;
現在,當我使用命令:
hive>select * from patients limit 5;
我得到的輸出:
NULL 75-84, F, 32000-47999
NULL 75-84, M, 16000-23999
NULL 85+, M, <16000
NULL 65-74, F, 32000-47999
NULL <65, M, <16000
但是,當我使用分配patient_id作爲串中的表現:
910997967, 75-84, F, 32000-47999
506013497, 75-84, M, 16000-23999
432041392, 85+, M, <16000
633048699, 65-74, F, 32000-47999
我試過使用:
hive>select CAST(patient_id AS int) from patients;
但它不改變的值,以int和只顯示
NULL
NULL
...
怎麼能patient_id的值可以被轉換成int值?
感謝
看來你有一個逗號作爲數據的一部分。我建議在將數據加載到表格中時照顧它。一旦逗號從字符串中刪除,「CAST」將正常工作。 – visakh
首先確保你使用的分隔符是正確的w.r.t你的csv文件。 其次檢查你的csv文件中的int/double/float值,它們不應該在文件中有**「」**。 就你的情況而言,@visakh指出分隔符的問題似乎存在。 –
@visakh:非常感謝。你的觀察幫助了我 – user2876812