CREATE EXTERNAL TABLE table name (foo INT, bar STRING)
COMMENT 'from csv file'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\054'
STORED AS TEXTFILE
LOCATION '/path/filename';
CREATE DATABASE IF NOT EXISTS lahman;
USE lahman;
CREATE TABLE AllstarFull (playerID string,yearID string,gameNum string,gameID string,teamID string,lgID string,GP string,startingPos string) row format delimited fields terminated by ',' stored as textfile;
LOAD DATA INPATH '/user/bigdataproject/AllstarFull.csv' OVERWRITE INTO TABLE AllstarFull;
SELECT * FROM AllstarFull;
6条答案
按热度按时间jutyujz01#
只有在以下情况下,才能将本地csv文件加载到配置单元:
您正在从一个配置单元群集节点执行此操作。
您在非群集节点上安装了配置单元客户端,并使用
hive
或者beeline
用于上载。jm2pwxwz2#
对于csv文件格式,数据将采用以下格式
如果我们使用以''结尾的字段,那么每列将得到如下值。
如果任何列值
comma
作为一种价值观,它将根本不起作用。因此,创建表的正确方法是使用opencsvserde
xpszyzbs3#
还有另一种方法,
使用hadoop hdfs-copyfromlocal将.csv数据文件从本地计算机复制到hdfs中的某个位置,例如“/path/filename”
进入配置单元控制台,运行以下脚本从文件中加载,使其成为配置单元表。注意“\054”是八进制数中“逗号”的ascii码,表示字段分隔符。
9gm1akwq4#
让我为您介绍以下简单步骤:
步骤:
首先,使用csv文件中的字段名在配置单元上创建一个表。例如,您的csv文件包含三个字段(id、name、salary),您希望在配置单元中创建一个名为“staff”的表。使用下面的代码在配置单元中创建表。
其次,既然您的表是在hive中创建的,那么让我们将csv文件中的数据加载到hive上的“staff”表中。
最后,在配置单元上显示“staff”表的内容,以检查数据是否已成功加载
谢谢。
5fjcxozz5#
您可以尝试这样做,下面是一些关于如何生成文件的示例。工具--https://sourceforge.net/projects/csvtohive/?source=directory
使用browse和set hadoop root directory ex:/user/bigdataproject选择一个csv文件/
工具生成包含所有csv文件的hadoop脚本,下面是一个生成的hadoop脚本示例,用于将csv插入hadoop
生成的配置单元脚本示例
谢谢vijay
vaqhlq816#
如果您有一个配置单元设置,那么可以使用hdfs/s3中的hiveload命令直接放置本地数据集。
在编写load命令时,需要使用“local”关键字。
hiveload命令的语法
有关详细信息,请参阅下面的链接。https://cwiki.apache.org/confluence/display/hive/languagemanual%20dml#languagemanualdml-将文件加载到表中