2015-02-25 3 views
1

Я новый Hadoop, я сам застрял в одном из основных вопросов при загрузке только одного файла blob-файла в таблицу hive. Я создаю таблицу на основе имени файла emp.dat.Невозможно загрузить azure Blob-файл в таблицу Hive в HDINSIGHT

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://[email protected]/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://[email protected]/emp.dat/ 

Я также попробовал другой подход, чтобы создать таблицу, не место любого wasb. После этого выполните следующую команду:

LOAD data inpath 'wasb://[email protected]/emp.dat/' overwrite into table Employee 

Он выдает неверную ошибку sytax на urb url.

Пожалуйста, помогите мне в этом вопросе. Является ли принуждением использовать каталог вместо имени файла. Возможно ли создать внешнюю таблицу, указав только имя файла.

Мое другое условие: если мы укажем имя каталога и оно содержит 2 файла, которые имеют разные схемы .. как он загружает все данные файла в таблицу.

Есть ли способ изменить контейнер по умолчанию из улья команды

+0

решение, предложенное Виктором F является правильный способ сделать это. В лазурном режиме вам нужно будет хранить данные в папках внутри контейнера. Когда вы начинаете создавать несколько таблиц, сохранение всех файлов данных в папке по умолчанию не рекомендуется. – dheee

ответ

1

Я думаю, что должно работать (до тех пор, как вы emp.dat внутри этого каталога EMP)

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://[email protected]/user/emp' 
; 
+0

благодарит победителя. Но я хочу упомянуть LOCATION 'wasb: //[email protected]/user/emp/emp.dat.' а не директории emp. здесь emp/emp.dat отсутствует в каталоге по умолчанию. – user145610

0

Да, я, наконец, нашел способ загрузки данных файла в таблицу hive LOAD DATA INPATH 'wasb: ///tempdata/emp.dat' OVERWRITE INTO TABLE Employee;

Это работает только для контейнера по умолчанию, поскольку часть полномочий URI не совпадает, если контейнеры различаются, даже если они принадлежат к одной учетной записи хранилища. пожалуйста, обратитесь к ниже URL

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

 Смежные вопросы

  • Нет связанных вопросов^_^