hadoop - 如何从配置单元中的特定存储桶中检索数据

标签 hadoop hive partitioning

我在hive中创建了一个表

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 所以我做了一个解决方法 this

但我无法查看存储桶中的数据。这不是人类可读的格式。

最佳答案

我正在上传从这个配置单元查询中生成的 orc 屏幕截图:

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 结果文件: enter image description here

关于hadoop - 如何从配置单元中的特定存储桶中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27223340/

相关文章:

java - hdfs 文件在伪分布式单节点集群中的位置?

apache-spark - 创建DataFrame时Spark报错

hadoop - 如何从Yarn rest API在浏览器上获取JSON?

sql-server - 将分区移动到新文件组

hadoop - 每次启动hadoop都需要密码

sql - 配置单元中 `load data inpath ` 和 `location` 之间的区别?

sql - 配置单元 - 在值范围之间将一行拆分为多行

hadoop - hive agg要求分组的列

apache-spark - Spark SQL 如何读取 Parquet 分区文件

mysql - 在mysql中管理行过期的最佳方法