【发布时间】:2015-04-27 21:57:53
【问题描述】:
我是新的 Hadoop,我陷入了一个基本问题,即仅将单个 blob 文件数据加载到 hive 表中。我正在根据文件名 emp.dat 创建表。
CREATE EXTERNAL TABLE Employee(ID int, manager string,Code int,Name string, Year int, Month int, Salary int,Age int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION 'wasb://practice@XXXblobstore.blob.core.windows.net/emp.dat/'
当我执行上述命令时,出现以下错误:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
MetaException(message:Got exception: java.io.IOException
Cannot create directory wasb://practice@XXXblobstore.blob.core.windows.net/emp.dat/
我还尝试了一种不同的方法来创建没有任何黄蜂位置的表。之后,运行以下命令:
LOAD data inpath 'wasb://practice@XXXblobstore.blob.core.windows.net/emp.dat/' overwrite into table Employee
它在 wasb url 抛出错误不正确的语法。
请在这个问题上帮助我。是否强制使用目录而不是文件名。是否可以通过仅提供文件名来创建外部表。
我的另一个条件是:如果我们给出目录名称并且它包含 2 个不同模式的文件。它如何将所有文件数据加载到表中。
有没有办法从 hive 命令更改默认容器
【问题讨论】:
-
Victor F 提出的解决方案是正确的方法。在 azure 中,您需要将数据存储在容器内的文件夹中。当您开始创建多个表时,不建议将所有数据文件存储在默认文件夹中。
标签: azure hadoop hive hiveql azure-hdinsight