如何在 HBASE 中存储一个 PIG 包?
How to Store a PIG Bag in HBASE?
我想做的是在 PIG
中为 HBASE
创建嵌套数组
所以基本上我会做以下事情:
//Loading some address data
CITY = LOAD '/user/root/landingzone/ADRPCDCITY.csv' using PigStorage(';')
AS (dPOST_CODE:chararray, dCITY_CODE:chararray);
//Create the BAG by grouping postal code
B = GROUP CITY by dPOST_CODE;
//Store it in HBASE
STORE B INTO 'hbase://TEST_ADDRESS_VALIDATION'
USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
'f1: group, f1:CITY' );
我面临的问题是 BAG
无法转换为 HBASE
映射 class
java.lang.ClassCastException: org.apache.pig.data.InternalCachedBag cannot be cast to java.util.Map
非常感谢您的帮助!
更好
我得到了一个解决方案,我想与大家分享
CITY = LOAD '/user/root/landingzone/CITY_Test.csv' using PigStorage(';')
AS (POST_CODE:chararray, CITY_CODE:long, CITY_NAME:chararray);
A = FILTER CITY BY (POST_CODE) IS NOT NULL;
result = FOREACH A GENERATE POST_CODE, TOMAP(UPPER(CITY_NAME), CITY_CODE);
STORE result INTO 'CITY_ADDRESS_VALIDATION' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage( 'f1' );
使用 TOMAP 并通过 HbaseStorage 保存它但不在那里分配映射,就可以了。
我想做的是在 PIG
HBASE
创建嵌套数组
所以基本上我会做以下事情:
//Loading some address data
CITY = LOAD '/user/root/landingzone/ADRPCDCITY.csv' using PigStorage(';')
AS (dPOST_CODE:chararray, dCITY_CODE:chararray);
//Create the BAG by grouping postal code
B = GROUP CITY by dPOST_CODE;
//Store it in HBASE
STORE B INTO 'hbase://TEST_ADDRESS_VALIDATION'
USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
'f1: group, f1:CITY' );
我面临的问题是 BAG
无法转换为 HBASE
映射 class
java.lang.ClassCastException: org.apache.pig.data.InternalCachedBag cannot be cast to java.util.Map
非常感谢您的帮助!
更好 我得到了一个解决方案,我想与大家分享
CITY = LOAD '/user/root/landingzone/CITY_Test.csv' using PigStorage(';')
AS (POST_CODE:chararray, CITY_CODE:long, CITY_NAME:chararray);
A = FILTER CITY BY (POST_CODE) IS NOT NULL;
result = FOREACH A GENERATE POST_CODE, TOMAP(UPPER(CITY_NAME), CITY_CODE);
STORE result INTO 'CITY_ADDRESS_VALIDATION' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage( 'f1' );
使用 TOMAP 并通过 HbaseStorage 保存它但不在那里分配映射,就可以了。