当前位置: 首页 > 知识库问答 >
问题:

尝试将hdfs中的csv文件加载到配置单元表时未选择行

易招
2023-03-14

我有一个csv文件,名为测试。hdfs中的csv。文件是通过filezilla放在那里的。当我通过putty登录到Edge节点时,我能够查看文件的路径和内容,使用的帐户凭据与我将文件放入hdfs时使用的帐户凭据相同。然后,我连接到配置单元并尝试创建一个外部表,使用以下语句指定我的csv文件在hdfs中的位置:

CREATE EXTERNAL TABLE(col1 string, col2 string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS ORC LOCATION '/file path'

当我执行这个命令时,它正在配置单元上创建一个外部表,但正在创建的表是空的,只显示我在create语句中已经提到的列。我的问题是,我是否在上面的create语句中的location参数中指定了正确的路径?当我将csv文件放入hdfs时,我尝试使用filezilla上显示的路径,格式为home/servername/username/directory/subdirectory/file,但这会返回一个错误,说明在上述路径中指定用户名的用户在文件路径上没有所有权限。

注意:我检查了文件及其所在目录的权限,用户拥有所有权限(读、写和执行)。

然后,我尝试将路径更改为用户/用户名/目录/子目录/文件的格式,当我这样做时,我能够创建外部表,但是该表是空的,并且不会加载创建它的csv文件中的所有数据。

我还尝试了如下创建内部表的替代方法,然后使用LOAD DATA INPATH命令。但这也失败了,因为我收到一个错误,说“指定路径上没有文件”。

CREATE TABLE foobar(key string, stats map<string, bigint>)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY '|'
MAP KEYS TERMINATED BY ':' ;

LOAD DATA INPATH '/tmp/foobar.csv' INTO TABLE foobar;

共有1个答案

顾梓
2023-03-14

首先,您不能在创建时将csv文件直接加载到使用orc文件格式指定的Hive表中。Orc是一种以优化方式存储数据的压缩技术。因此,您可以按照以下步骤将数据加载到orc格式表中。

>

  • 您应该创建一个文本文件格式的临时表。

    使用命令将数据加载到其中。蜂巢

    现在创建一个蜂巢表作为您所需的文件格式(RC、ORC、拼花地板等)。

    -现在使用以下命令将数据加载到其中。

    蜂箱

    您将获得orc文件格式的表。

    第二个问题是,如果您使用LOAD DATA命令将数据加载到表中,则文件中的数据将变为空,并且将在默认位置(/user/hive/仓库/)创建新的dir,并使用表名和数据将移动到该文件中。所以选中该位置,您将看到数据。

  •  类似资料:
    • 我是hadoop蜂巢的新手。我使用的是开源的hadoop 2.7.1配置单元1.2.2。它安装在ubuntu上,一个单一的节点集群。我在csv文件中有106行30列数据。我使用以下代码将其导入到配置单元表中: 然后我得到了null列名:返回的前半部分,返回的后半部分 请帮我怎么解决。提前感谢!

    • 我在构造函数 rabbitmq配置。Springxml位于src/main/resources中,在src/main/java中加载xml的类和在src/test/java中加载xml的测试类。我尝试在src/test/resources中复制XML文件,但没有效果。 有没有办法解决这个问题?

    • 我试图为我的表创建分区,以便更新一个值。 这是我的样本数据 我想把珍妮特的部门更新到B。 为此,我创建了一个以Department为分区的表。 创建外部表trail(EmployeeID Int、FirstName String、Designation String、Salary Int),按(Department String)行格式分隔字段进行分区,以“,”location'/user/sre

    • HDFS中的数据如下所示: 注意:数据每天和每小时加载到HDFS目录/ad_data/raw/reg_logs中。 此HDFS目录中有3个.tsv文件: 我怎样才能实现呢?如果需要,请更正我的配置单元表模式和获取数据的方法。 == 第二部分:

    • 我从Hadoop Hive开始学习BigData 我不能上载本地数据到配置单元表 它仍然得到这个错误 有人能给我解决办法吗?