Ошибка копирования данных из HDFS во внешнюю таблицу в кусте - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь вставить данные из hdfs во внешнюю таблицу в улье. но получаю ошибку ниже.

Ошибка:

Usage: java FsShell [-put <localsrc> ... <dst>]
Command failed with exit code = 255

Команда

hive> !hadoop fs -put /myfolder/logs/pv_ext/2013/08/11/log/data/Sacramentorealestatetransactions.csv
    > ;

Отредактировано:

file location : /yapstone/logs/pv_ext/somedatafor_7_11/Sacramentorealestatetransactions.csv

table location : hdfs://sandbox:8020/yapstone/logs/pv_ext/2013/08/11/log/data

я в улье выполнение команды

!hadoop fs -put /yapstone/logs/pv_ext/somedatafor_7_11/Sacramentorealestatetransactions.csv hdfs://sandbox:8020/yapstone/logs/pv_ext/2013/08/11/log/data

получая ошибку:

put: File /yapstone/logs/pv_ext/somedatafor_7_11/Sacramentorealestatetransactions.csv does not exist.
Command failed with exit code = 255

Пожалуйста, поделитесь своим предложением.

Спасибо

Ответы [ 3 ]

0 голосов
/ 03 июля 2018

Еще один способ. Изменить расположение таблицы Hive:

alter table table_name set location='hdfs://your_data/folder';
0 голосов
/ 03 июля 2018

Этот метод может помочь вам лучше.

  1. Нужно создать таблицу в HIVE.

    hive> CREATE EXTERNAL TABLE IF NOT EXISTS mytable(myid INT, a1 STRING, a2 STRING....) row format delimited fields terminated by '\t' stored as textfile LOCATION hdfs://sandbox:8020/yapstone/logs/pv_ext/2013/08/11/log/data;

  2. Загрузка данных из HDFS в таблицу кустов.

    hive> LOAD DATA INPATH /yapstone/logs/pv_ext/somedatafor_7_11/Sacramentorealestatetransactions.csv INTO TABLE mytable;

    ПРИМЕЧАНИЕ. При загрузке данных из HDFS в HIVE (INPATH) данные будут перемещены из HDFS. место для HIVE. Таким образом, данные не будут доступны в папке HDFS в следующий раз.

  3. Проверьте, успешно ли загружены данные.

    hive> SELECT * FROM mytable;

0 голосов
/ 03 июля 2018

Вот два способа загрузки данных во внешнюю таблицу Hive.

Метод 1:

a) Получить местоположение папки HDFS для внешней таблицы Hive.

hive> desc formatted mytable;

b) Обратите внимание на значение свойства Location в выводе. Скажем, это hdfs:///hive-data/mydata

c) Затем поместите файл с локального диска в HDFS

$ hadoop fs -put /location/of/data/file.csv hdfs:///hive-data/mydata

Метод 2:

a) Загрузка данных с помощью этой команды Hive

hive > LOAD DATA LOCAL INPATH '/location/of/data/file.csv' INTO TABLE mytable;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...