gpt4 book ai didi

hadoop - Pig 默认的 JsonLoader 模式问题

转载 作者:可可西里 更新时间:2023-11-01 15:16:13 27 4
gpt4 key购买 nike

我有以下需要使用 Pig 解析的数据

数据

{
"Name": "BBQ Chicken",
"Sizes": [
{ "Size": "Large", "Price": 14.99 },
{ "Size": "Medium", "Price": 12.99 }
],
"Toppings": [ "Barbecue Sauce", "Chicken", "Cheese" ]
}

我能够为 NameSizes 定义架构,但我无法让 Toppings 工作。在这里寻求帮助。

脚本

data = LOAD '/user/hue/data/nested_json_pizza_sample_data.json'
USING JsonLoader('Name:chararray,
Sizes:bag{tuple(Size:chararray, Price:float)},
Toppings:tuple(a:chararray)');
DUMP data;

输出

正如您在下面看到的,Topping 的数据未被解析。

(BBQ Chicken,{(Large,14.99),(Medium,12.99)},)
(Hawaiian,{(Large,12.99),(Medium,10.99)},)
(Vegetable,{(Large,12.99),(Medium,10.99)},)
(Pepperoni,{(Large,12.99),(Medium,10.99),(Small,7.49)},)
(Cheese,{(Large,10.99),(Medium,9.99),(Small,5.49)},)
data: {Name: chararray,Sizes: {(Size: chararray,Price: float)},Toppings: (a: chararray)}

最佳答案

这里有两个选择:如果数组中的项数未知。

Toppings:{t:(i:chararray)}

或者如果元素的数量总是相同。

Toppings: (i: chararray, j: chararray, k: chararray)

会给你输出:

(BBQ Chicken,{(Large,14.99),(Medium,12.99)},)

关于hadoop - Pig 默认的 JsonLoader 模式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21076583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com