我将此表作为输入:
Table Name:Deals
Columns: Doc_id(BIGINT),Nv_Pairs_Feed(STRING),Nv_Pairs_Category(STRING)
For Example:
Doc_id: 4997143658422483637
Nv_Pairs_Feed: "TYPE:Wiper Blade;CONDITION:New;CATEGORY:Auto Parts and Accessories;STOCK_AVAILABILITY:Y;ORIGINAL_PRICE:0.00"
Nv_Pairs_Category: "Condition:New;Store:PartsGeek.com;"
我正在尝试解析字段:“nv\u pairs\u feed”和“nv\u pairs\u category”,并提取它们的n:v对(每对都除以“;”,并且每个名称和值都用“:”除。我的目标是将每个n:v作为一行插入此表中:
Doc_id | Name | Value | Source_Field
期望结果示例:
4997143658422483637 | Condition | New | Nv_Pairs_Category
4997143658422483637 | Store | PartsGeek.com | Nv_Pairs_Category
4997143658422483637 | TYPE | Wiper Blade | Nv_Pairs_Feed
4997143658422483637 | CONDITION | New | Nv_Pairs_Feed
4997143658422483637 | CATEGORY | Auto Parts and Accessories | Nv_Pairs_Feed
4997143658422483637 | STOCK_AVAILABILITY | Y | Nv_Pairs_Feed
4997143658422483637 | ORIGINAL_PRICE | 0.00 | Nv_Pairs_Feed
1条答案
按热度按时间zsbz8rwp1#
可以使用标准配置单元udf将字符串转换为Map
str_to_map
然后使用brickhouse udf(http://github.com/klout/brickhouse )map_key_values
,combine
以及numeric_range
去炸那些Map。i、 大概是这样的你可以用一个
explode_map
自定义项