2015-06-25 25 views
0

表存在於蜂巢是按以下格式:導出配置單元CSV數據類型的完整性

desc table_name; 
col_id    double 
col_ts    string 
col_nm    string 
cols_nm    string 
col_cd    string 
col_state_cd   string 

我使用下面的代碼將其導出爲CSV:

hive -e 'set hive.cli.print.header=true; select * from table_name' | sed 's/[\t]/,/g' > /home/yourfile.csv 

但是當我通過R讀取它時,數​​據類型col_id更改爲字符串。 如何確保數據格式與Hive中的相同?

+0

你如何將它讀入R?你總是可以強制使用'Data $ col_id = as.numeric(Data $ col_id)',但是可能有某種類型的字符迫使R以字符串類型讀取列。 –

+0

我正在使用demo_tables < - read.csv(「my_table.csv」,stringsAsFactors = FALSE)讀取它,但* my_table.csv *本質上是動態的。它可能包含一些其他表格,其中可能有其他一些其他名稱的列。所以我需要確保數據類型相同,同時將它從Hive傳輸到CSV。 –

+0

另外,如果我使用excel打開csv,它會將所有列顯示爲字符串。因此,當從HIve導出到CSV而不是在讀入R時發生這種情況 –

回答

0

嘗試哈德利韋克姆的readr package - 它在猜測數據類型很棒。

require(readr) 
demo_tables <- read_csv("my_table.csv") 
相關問題