Я создал стол в улье

create table HiveMB 
  (EmployeeID Int,FirstName String,Designation String,Salary Int,Department String)
   clustered by (Department) into 3 buckets 
   stored as orc TBLPROPERTIES ('transactional'='true') ;

Где мой формат файла похож на

1,Anne,Admin,50000,A
2,Gokul,Admin,50000,B
3,Janet,Sales,60000,A
4,Hari,Admin,50000,C
5,Sanker,Admin,50000,C

И данные попали в 3 сегмента для отдела.

Когда осмотрел склад, там 3 ведра

Found 3 items
-rwxr-xr-x   3 aibladmin hadoop     252330 2014-11-28 14:46 /user/hive/warehouse/hivemb/delta_0000012_0000012/bucket_00000
-rwxr-xr-x   3 aibladmin hadoop     100421 2014-11-28 14:45 /user/hive/warehouse/hivemb/delta_0000012_0000012/bucket_00001
-rwxr-xr-x   3 aibladmin hadoop     313047 2014-11-28 14:46 /user/hive/warehouse/hivemb/delta_0000012_0000012/bucket_00002

Как я смогу получить 1 такое ведро.

Когда я делал -cat, он не был в удобочитаемом формате. показывая что-то вроде

`J�lj�(��rwNj��[��Y���gR�� \�B�Q_Js)�6 �st�A�6�ixt� R �
ޜ�KT� e����IL Iԋ� ł2�2���I�Y��FC8 /2�g� ����� > ������q�D � b�` `�`���89$ $$ ����I��y|@޿    
                                                                                                %\���� �&�ɢ`a~ � S �$�l�:y���K $�$����X�X��)Ě���U*��
6.  �� �cJnf� KHjr�ć����� ��(p` ��˻_1s  �5ps1:  1:I4L\��u

Как я могу увидеть данные, хранящиеся в каждой корзине?

И мой файл находится в формате csv, а не в ORC, поэтому в качестве обходного пути я сделал это

Но я не могу просматривать данные по сегментам. Это не в удобочитаемом формате.

3
Unmesha Sreeveni U.B 1 Дек 2014 в 10:10

4 ответа

Лучший ответ

Я загружаю снимок экрана орка, созданный на основе запросов этого улья:

create table stackOverFlow 
(EmployeeID Int,FirstName String,Designation String,Salary Int,Department String)
row format delimited
fields terminated by ',';

load data local inpath '/home/ravi/stack_file.txt'
overwrite into table stackOverFlow;

А также

  create table stackOverFlow6
(EmployeeID Int,FirstName String,Designation String,Salary Int,Department String)
   clustered by (Department) into 3 buckets
   row format delimited
   fields terminated by ','
stored as orc tblproperties ("orc.compress"="ZLIB");
 insert overwrite table stackOverFlow6 select * from stackOverFlow;

Сгенерированный файл результатов ORC для вышеуказанных запросов улья: введите описание изображения здесь

2
Ravi H 2 Дек 2014 в 10:15
Разве мы не можем увидеть эти данные в удобочитаемом формате? и если нам нужно ввести данные/запись в таблицу ORC, эти данные должны быть в этом формате. Это необходимо?
 – 
USB
2 Дек 2014 в 11:55
Формат ORC имеет разные типы, и я использовал "orc.compress"="ZLIB", поэтому я получил этот (предыдущий рисунок), и он не нужен, как показано на рисунке, но ORC позволяет нам сжимать большие данные в небольшой файл данных. Предположим, текстовый файл размером 585 ГБ в ORCFile 131 ГБ, и у него есть много лучших будущих, таких как перспективы хранения данных и т. Д.
 – 
Ravi H
2 Дек 2014 в 12:08
create table HiveMB1 
  (EmployeeID Int,FirstName String,Designation String,Salary Int,Department String)
 row format delimited
fields terminated by ',';

load data local inpath '/home/user17/Data/hive.txt'
overwrite into table HiveMB1;


create table HiveMB2
(EmployeeID Int,FirstName String,Designation String,Salary Int,Department String)
   clustered by (Department) into 3 buckets
   row format delimited
   fields terminated by ',';

 insert overwrite table HiveMB2 select * from HiveMB1 ;



user17@BG17:~$ hadoop dfs -ls /user/hive/warehouse/hivemb2
Found 3 items
-rw-r--r--   1 user17 supergroup         22 2014-12-01 15:52 /user/hive/warehouse/hivemb2/000000_0
-rw-r--r--   1 user17 supergroup         44 2014-12-01 15:53 /user/hive/warehouse/hivemb2/000001_0
-rw-r--r--   1 user17 supergroup         43 2014-12-01 15:53 /user/hive/warehouse/hivemb2/000002_0

user17@BG17:~$ hadoop dfs -cat /user/hive/warehouse/hivemb2/000000_0
2,Gokul,Admin,50000,B

user17@BG17:~$ hadoop dfs -cat /user/hive/warehouse/hivemb2/000001_0
4,Hari,Admin,50000,C
5,Sanker,Admin,50000,C

user17@BG17:~$ hadoop dfs -cat /user/hive/warehouse/hivemb2/000002_0
1,Anne,Admin,50000,A
3,Janet,Sales,60000,A
0
Kishore 1 Дек 2014 в 13:39

Ваша таблица:

> create table HiveMB 
  (EmployeeID Int,FirstName String,Designation String,Salary Int,Department String)
   clustered by (Department) into 3 buckets 
   stored as orc TBLPROPERTIES ('transactional'='true') ;

Вы выбрали таблицу как формат ORC, что означает, что она сжимает фактические данные и сохраняет сжатые данные.

0
Ravi H 1 Дек 2014 в 16:01
Не могли бы вы помочь мне с образцом файла формата ORC?
 – 
USB
2 Дек 2014 в 08:17
Мой файл находится в формате csv, и в качестве обходного пути я загрузил csv в таблицу orc: stackoverflow.com/questions/21721251/…
 – 
USB
2 Дек 2014 в 08:18
` CREATE TABLE ORCFileFormatExample( tweet_id INT, имя пользователя BIGINT, txt STRING, Created_at STRING, profile_location STRING, favc INT, no_of_retweets STRING, retcount INT,followers_count INT) ФОРМАТ СТРОК ПОЛЯ, РАЗДЕЛЕННЫЕ '\t', Сохраненные как ORC tblproperties ("orc. сжать"="ZLIB");`
 – 
Ravi H
2 Дек 2014 в 08:36
Как выглядит файл орка, у вас есть образец записи?
 – 
USB
2 Дек 2014 в 09:32

Вы можете увидеть формат орка для ведра, выполнив команду:

hive --orcfiledump [path-to-the-bucket]
0
emmanuel 19 Фев 2015 в 20:27