Hive INSERT OVERWRITE в Google Storage, поскольку локальная директория не работает

Я использую следующий Hive Query: hive> INSERT OVERWRITE LOCAL DIRECTORY "gs:// Google/Storage/Directory/Path/Name" поля с разделителями в формате строки, оканчивающиеся на ',' select * from .;

Я получаю следующее сообщение об ошибке "Ошибка: сбой за исключением неправильной FS:"gs:// Google/Storage/Directory/PathName", ожидается: file: ///

Что я могу делать не так?

2 ответа

Удалить Local из вашего синтаксиса. Смотрите ниже синтаксис

INSERT OVERWRITE DIRECTORY 'gs://Your_Bucket_Path/'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY "\n" 
SELECT * FROM YourExistingTable; 

В Hive есть ошибка, в том числе IIRC Hive 1.2.1, где он использует настроенный fs.default.name или же fs.defaultFS для его scratchdir, даже если путь к таблице находится в другой файловой системе. В вашем случае, кажется, у вас есть настройки по умолчанию fs.defaultFS в file:///Вот почему он говорит "ожидается: файл:///". В распределенном кластере Hadoop вы можете увидеть, что вместо него написано "ожидается: hdfs://...".

Вы можете исправить это в одной подсказке улья, переопределив fs.default.name а также fs.defaultFS:

> set fs.default.name=gs://your-bucket/
> set fs.defaultFS=gs://your-bucket/

Вы также можете изменить эти записи в вашем core-site.xml файл, чтобы указать на ваше местоположение GCS, чтобы сделать это проще.

Другие вопросы по тегам