2015-06-25 22 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") 
相关问题