Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将azure Blob文件加载到HDINSIGHT中的配置单元表中_Azure_Hadoop_Hive_Hiveql_Azure Hdinsight - Fatal编程技术网

无法将azure Blob文件加载到HDINSIGHT中的配置单元表中

无法将azure Blob文件加载到HDINSIGHT中的配置单元表中,azure,hadoop,hive,hiveql,azure-hdinsight,Azure,Hadoop,Hive,Hiveql,Azure Hdinsight,我是新的Hadoop,在将单个blob文件数据加载到配置单元表时,我陷入了一个基本问题。我正在基于文件名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 LOCA

我是新的Hadoop,在将单个blob文件数据加载到配置单元表时,我陷入了一个基本问题。我正在基于文件名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/
我还尝试了一种不同的方法来创建没有任何wasb位置的表。然后,运行以下命令:

LOAD data inpath 'wasb://practice@XXXblobstore.blob.core.windows.net/emp.dat/' overwrite into table Employee 
它在wasb url处抛出错误sytax

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

我的另一个条件是:如果我们给目录名,它包含两个不同模式的文件。。它如何将所有文件数据加载到表中


有没有办法从配置单元命令更改默认容器

我认为以下方法应该有效(只要您在这个emp目录中有emp.dat)


是的,我终于找到了将文件数据加载到配置单元表的方法 将数据加载到路径'wasb:///tempdata/emp.dat'覆盖到表Employee中

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


谢谢你,维克多。但我想提及的是地点'wasb://practice@XXXblobstore.blob.core.windows.net/user/emp/emp.dat.'而不是目录emp。这里emp/emp.dat不在默认目录中。Victor F提出的解决方案是正确的方法。在azure中,您需要将数据存储在容器中的文件夹中。开始创建多个表时,不建议将所有数据文件存储在默认文件夹中。
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'
;