因为这是一个新手说的。
我已经为我设置了Hadoop和Hive,因此我可以在我的计算机上运行Hive查询,以访问AWS集群上的数据。我是否可以像使用MS SQL Server一样,使用存储在计算机上的.csv数据运行配置单元查询?
那么如何将.csv数据加载到配置单元中呢?它与Hadoop有什么关系?我应该运行哪种模式?
我应该关心哪些设置,这样如果我做错了什么,我总是可以返回并在Amazon上运行查询,而不会影响之前为我设置的内容?
发布于 2015-09-26 16:21:55
让我为您完成以下简单的步骤:
步骤:
首先,使用csv文件中的字段名称在hive上创建一个表。例如,假设您的csv文件包含三个字段(id、name、salary),并且您希望在配置单元中创建一个名为"staff“的表。使用下面的代码在配置单元中创建表。
hive> CREATE TABLE Staff (id int, name string, salary double) row format delimited fields terminated by ',';
其次,现在您的表已在hive中创建,让我们将csv文件中的数据加载到hive上的"staff“表中。
hive> LOAD DATA LOCAL INPATH '/home/yourcsvfile.csv' OVERWRITE INTO TABLE Staff;
最后,在hive上显示"Staff“表的内容,以检查数据是否已成功加载
hive> SELECT * FROM Staff;
谢谢。
发布于 2013-10-11 23:28:50
如果您有配置单元设置,则可以使用hdfs/s3中的配置单元加载命令直接放置本地数据集。
在编写加载命令时,您需要使用"Local“关键字。
hiveload命令的语法
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
有关更多详细信息,请参阅以下链接。https://cwiki.apache.org/confluence/display/Hive/LanguageManual%20DML#LanguageManualDML-Loadingfilesintotables
发布于 2017-12-10 03:27:21
对于csv文件格式,数据将采用以下格式
"column1", "column2","column3","column4"
如果我们使用以',‘结尾的字段,那么每一列都会得到如下所示的值。
"column1" "column2" "column3" "column4"
此外,如果任何列值都以comma
作为值,那么它将根本不起作用。
因此,创建表的正确方法是使用OpenCSVSerde
create table tableName (column1 datatype, column2 datatype , column3 datatype , column4 datatype)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.OpenCSVSerde'
STORED AS TEXTFILE ;
https://stackoverflow.com/questions/19320611
复制相似问题