Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何从一个.csv文件中创建一个配置单元表,该文件有一列字段以分号表示;_Mysql_Csv_Hadoop_Hive_Beeswax - Fatal编程技术网

Mysql 如何从一个.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"

我有一个.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"

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之前清除符号)。或者,将每一行的全部作为一列吸入到配置单元中的暂存表中,并将其后置处理为所需的格式。