azure - 无法将 azure Blob 文件加载到 HDINSIGHT 中的 Hive 表中

标签 azure hadoop hive hiveql azure-hdinsight

我是 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://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6212100301160b0107223a3a3a000e0d0011160d10074c000e0d004c010d10074c150b0c060d15114c0c0716" rel="noreferrer noopener nofollow">[email protected]</a>/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://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e9999b888a9d808a8ca9b1b1b18b85868b9a9d869b8cc78b85868bc78a869b8cc79e80878d869e9ac7878c9d" rel="noreferrer noopener nofollow">[email protected]</a>/emp.dat/

我还尝试了一种不同的方法来创建没有任何 wasb 位置的表。之后,运行以下命令:

LOAD data inpath 'wasb://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0a7a786b697e63696f4a52525268666568797e65786f2468666568246965786f247d63646e657d7924646f7e" rel="noreferrer noopener nofollow">[email protected]</a>/emp.dat/' overwrite into table Employee 

它在 wasb url 处抛出错误语法不正确。

请帮我解决这个问题。是否强制使用目录而不是文件名。是否可以通过仅提供文件名来创建外部表。

我的另一个条件是:如果我们给出目录名称,并且它包含两个具有不同架构的文件..它如何将所有文件数据加载到表中。

有没有办法从 hive 命令更改默认容器

最佳答案

我认为以下应该可行(只要您在此 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://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4e3e3c2f2d3a272d2b0e1616162c22212c3d3a213c2b602c22212c602d213c2b603927202a21393d60202b3a" rel="noreferrer noopener nofollow">[email protected]</a>/user/emp'
;

关于azure - 无法将 azure Blob 文件加载到 HDINSIGHT 中的 Hive 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28726954/

相关文章:

java - 如何使用具有多对多关系的两个表在 Java Mapreduce 上执行 reduce side join?

ios - Azure AD B2C 在 Xamarin.Forms iOS 应用程序中指定多个身份提供程序

azure - 英国时区 Azure Webjobs 的 DST 设置

java - 何时调用job.getJobID()?

hive - 如何在Hive中选择列并进行转换?

sql - 在配置单元中拆分列

hadoop - Hive Web 界面无法正常工作 - HTTP 错误 500

c# - 使用await和async返回字符串列表

azure - 文件绑定(bind)应用程序中的架构设计和与 Azure 的角色通信

hadoop - 在 Airflow 中重用任务