2016-11-16 4 views
1

У меня есть задача проекта у моего руководителя, который утверждает, что можно использовать Hive в HDInsight (для Windows), чтобы запросить два разных типа файлов, а затем извлечь данные из них. Один из этих файлов - .xls, а другой - CSV-файл.Создайте таблицу Hive и вставьте данные из файла xls

Мне удалось загрузить оба этих файла в кластер Hadoop с помощью VS, а затем попытался создать таблицу Hive из файла .xls (я использовал обучающие материалы, прежде чем использовать файлы .csv, которые отлично работают с Hive), но с файлом .xls я постоянно получаю ошибку «Failed» при попытке.

Я попробовал следующий пример кода для создания таблицы, разграничения, завершения поля (из которых я пробовал несколько из них без успеха), типа файла (не уверен, что еще использовать здесь) и целевого местоположения.

DROP TABLE IF EXISTS table1; 

CREATE EXTERNAL TABLE IF NOT EXISTS table1(id int, postcde int, city string) 
    ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY ' ' 
    STORED AS TEXTFILE LOCATION 'wasb://[email protected]/folder1/data.xls/' 

Я не уверен, является ли это или нет вообще возможно, так как там, как представляется, противоречивые ответы на аналогичный вопрос здесь, но в соответствии с моим руководителем, должна быть возможность сделать это с улья - без необходимости конвертировать типы файлов в один формат перед загрузкой в ​​Hadoop!

https://community.hortonworks.com/questions/31968/hi-is-there-a-way-to-load-xlsx-file-into-hive-tabl.html

ответ

2

Я не думаю, что вы можете назначить файл первенствовать как место таблицы.

улей может сохранять данные в HDFS (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL) или

S3 хранения (http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-hive-additional-features.html)

улей не поддерживает формат EXCEL напрямую, так что вам придется конвертировать Excel файлов в формате файла с разделителями, затем используйте команду load для загрузки файла в Hive (или HDFS).

+0

@ Yang Bryan Спасибо за ваш ответ. Я думаю, вы правы в том, что вы говорите. Я просто наткнулся на другую ссылку, указывающую два других варианта для чтения данных из формата .xls в таблицу Hive в этой [ссылке] (http://stackoverflow.com/questions/29429679/how-to-load-xls-data-from -multiple-xls-file-in-hive), но кажется, что нет «прямого» способа сделать это. Я попытался выправить ответ, но, поскольку у меня не хватает репутации, он не будет виден. Еще раз спасибо за ваше время и помощь. – themightyhulk

+0

@th Вас приветствует J –