所以我刚开始接受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'费用
我想将整行作为单个字符串,因此我只指定了一个字符串列。
答案 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'