数据未从HIVE中的文件传输到表

时间:2013-12-20 14:38:29

标签: hadoop hive

所以我刚开始接受HIVE,

这就是我的工作,

- >将文件加载到HDFS:

  

hadoop fs -put purchasess.txt

- >创建一个表:

> CREATE EXTERNAL TABLE p1(transaction STRING) STORED AS TEXTFILE
> LOCATION '/purchases.txt';

  

创建表p1(事务STRING)存储为文本文件位置   '/purchases.txt';

- >显示表格:

  

显示表格;

此时它显示表p1已创建。

- >查看内容

select * from p1

只是输出

OK
Time taken: 0.175 seconds

编辑:

数据以这种格式存储:

  

日期'\ t'时间'\ t'存储'\ t'项''t'费用

我想将整行作为单个字符串,因此我只指定了一个字符串列。

3 个答案:

答案 0 :(得分:2)

应将Hive表的位置指定为目录,而不是单个文件。然后,Hive将读取该目录中的每个文件。例如:

创建目录:

hadoop fs -mkdir /p1

将文件放在目录中:

hadoop fs -put purchases.txt /p1

创建配置表:

CREATE EXTERNAL TABLE p1(transaction STRING)
STORED AS TEXTFILE
LOCATION '/p1';

hadoop世界中的大多数工具都倾向于在目录而不是单个文件上运行。这样,hadoop本身可以管理读/写文件的数量以及它们的名称。

答案 1 :(得分:0)

尝试使用以下查询,您将能够在表格中看到填充的数据:

create external table p1 (
  transaction String
)
location '/purchases.txt';

注意:您可以通过其他几种方式创建表格并将数据加载到表格中。我刚刚为您采取的方法指定了解决方案。尝试探索它们。

如果您有任何问题,请与我们联系。

Happy Hadooping !!!!!

答案 2 :(得分:0)

请改用此命令;应该工作:

CREATE EXTERNAL TABLE p1(transaction STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' 
STORED AS TEXTFILE LOCATION '/p1'