Mysql 如何从一个.csv文件中创建一个配置单元表,该文件有一列字段以分号表示;
我有一个.csv文件,格式为一(第一)列/单元格,其中包含我想要在配置单元表中使用分号分隔的五个字段;像这样:Mysql 如何从一个.csv文件中创建一个配置单元表,该文件有一列字段以分号表示;,mysql,csv,hadoop,hive,beeswax,Mysql,Csv,Hadoop,Hive,Beeswax,我有一个.csv文件,格式为一(第一)列/单元格,其中包含我想要在配置单元表中使用分号分隔的五个字段;像这样: ISBN;"Title";"Author";"Year";"Publisher" 0002005018;"Clara Callan";"Richard Bruce Wright";"2001";"HarperFlamingo Canada" 0399135782;"The Kitchen God's Wife";"Amy Tan";"1991";"Putnam Pub Group"
ISBN;"Title";"Author";"Year";"Publisher"
0002005018;"Clara Callan";"Richard Bruce Wright";"2001";"HarperFlamingo Canada"
0399135782;"The Kitchen God's Wife";"Amy Tan";"1991";"Putnam Pub Group"
etc.
etc.
...
我是否可以使用配置单元查询来拆分数据;并将其存储在我创建的具有相同列名顺序的表中
像regexp\u extract?还是我需要使用serde
我是Hadoop/hive/beeswax新手,正在使用Cloudera quickstart vm 5.2听起来您想做这样的事情:
CREATE TABLE books (ISBN STRING, Title STRING, Author STRING, Year STRING, Publisher STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY "\;";
LOAD DATA INPATH '/path/to/your/datafile' INTO TABLE books;
最好使用SerDe,您可以找到非常感谢的示例,但是您能解释一下为什么在这个查询中年份字段不能是INT吗?当它为INT时显示为NULL。我相信这是因为数据中的年份被引号包围了。删除引号应该允许数据直接加载到INT列中。谢谢,我的数据有时会被误读,因为它在&;上被过早拆分;(我想是符号和代码)在表中的某些行中。我怎样才能阻止这种事情发生?基本上,一些标题有&;其他人可能有不同的观点,但我的观点是,由于您可能使用Hive/HDFS作为数据仓库,因此在加载数据之前,您应该对数据进行至少粗略的清理(在加载到HDFS和Hive之前清除符号)。或者,将每一行的全部作为一列吸入到配置单元中的暂存表中,并将其后置处理为所需的格式。