【问题标题】:Unable to load azure Blob file into Hive table in HDINSIGHT无法将 Azure Blob 文件加载到 HDINSIGHT 中的 Hive 表中
【发布时间】: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


【解决方案1】:

我认为以下应该可以工作(只要你在这个 emp 目录中有 emp.dat)

CREATE EXTERNAL TABLE Employee
(
    ID      INT,
    Manager STRING,
    Code    INT,
    Name    STRING,
    Year    INT,
    Month   INT,
    Salary  DOUBLE,
    Age     INT
)
ROW FORMAT
    DELIMITED
    FIELDS           TERMINATED BY '\t'
LOCATION 'wasb://practice@XXXblobstore.blob.core.windows.net/user/emp'
;

【讨论】:

  • 感谢维克多。但我正在寻找提及位置“wasb://practice@XXXblobstore.blob.core.windows.net/user/emp/emp.dat”。而不是目录emp。这里 emp/emp.dat 不存在于默认目录中。
【解决方案2】:

是的,我终于找到了一种将文件数据加载到 hive 表中的方法 LOAD DATA INPATH 'wasb:///tempdata/emp.dat' OVERWRITE INTO TABLE Employee;

这仅适用于默认容器,因为如果容器不同,即使它们属于相同的存储帐户,URI 的权限部分也不匹配。请参考以下网址

https://social.msdn.microsoft.com/forums/azure/en-US/22cf9a71-cce7-4765-a78e-2dc569d69a8a/hive-path-is-not-legal-azure-storage?forum=hdinsight

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    相关资源
    最近更新 更多