首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Hadoop/Hive :在本地机器上从.csv加载数据

Hadoop/Hive :在本地机器上从.csv加载数据
EN

Stack Overflow用户
提问于 2013-10-11 22:24:52
回答 3查看 151.5K关注 0票数 46

因为这是一个新手说的。

我已经为我设置了Hadoop和Hive,因此我可以在我的计算机上运行Hive查询,以访问AWS集群上的数据。我是否可以像使用MS SQL Server一样,使用存储在计算机上的.csv数据运行配置单元查询?

那么如何将.csv数据加载到配置单元中呢?它与Hadoop有什么关系?我应该运行哪种模式?

我应该关心哪些设置,这样如果我做错了什么,我总是可以返回并在Amazon上运行查询,而不会影响之前为我设置的内容?

EN

回答 3

Stack Overflow用户

发布于 2015-09-26 16:21:55

让我为您完成以下简单的步骤:

步骤:

首先,使用csv文件中的字段名称在hive上创建一个表。例如,假设您的csv文件包含三个字段(id、name、salary),并且您希望在配置单元中创建一个名为"staff“的表。使用下面的代码在配置单元中创建表。

代码语言:javascript
复制
hive> CREATE TABLE Staff (id int, name string, salary double) row format delimited fields terminated by ',';

其次,现在您的表已在hive中创建,让我们将csv文件中的数据加载到hive上的"staff“表中。

代码语言:javascript
复制
hive>  LOAD DATA LOCAL INPATH '/home/yourcsvfile.csv' OVERWRITE INTO TABLE Staff;

最后,在hive上显示"Staff“表的内容,以检查数据是否已成功加载

代码语言:javascript
复制
hive> SELECT * FROM Staff;

谢谢。

票数 54
EN

Stack Overflow用户

发布于 2013-10-11 23:28:50

如果您有配置单元设置,则可以使用hdfs/s3中的配置单元加载命令直接放置本地数据集。

在编写加载命令时,您需要使用"Local“关键字。

hiveload命令的语法

代码语言:javascript
复制
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

票数 17
EN

Stack Overflow用户

发布于 2017-12-10 03:27:21

对于csv文件格式,数据将采用以下格式

代码语言:javascript
复制
"column1", "column2","column3","column4"

如果我们使用以',‘结尾的字段,那么每一列都会得到如下所示的值。

代码语言:javascript
复制
"column1"    "column2"     "column3"     "column4"

此外,如果任何列值都以comma作为值,那么它将根本不起作用。

因此,创建表的正确方法是使用OpenCSVSerde

代码语言:javascript
复制
create table tableName (column1 datatype, column2 datatype , column3 datatype , column4 datatype)
ROW FORMAT SERDE 
'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
STORED AS TEXTFILE ;
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19320611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档