[HADOOP] 돼지 기본 JsonLoader 스키마 문제
HADOOP돼지 기본 JsonLoader 스키마 문제
돼지를 사용하여 구문 분석해야하는 데이터가 있습니다.
데이터
{
"Name": "BBQ Chicken",
"Sizes": [
{ "Size": "Large", "Price": 14.99 },
{ "Size": "Medium", "Price": 12.99 }
],
"Toppings": [ "Barbecue Sauce", "Chicken", "Cheese" ]
}
이름과 크기에 대한 스키마를 정의 할 수 있지만 토핑 작업을 수행 할 수 없습니다. 도움이 필요하시면 여기를 클릭하십시오.
스크립트
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)}
해결법
-
==============================
1.여기에는 두 가지 옵션이 있습니다 : 배열의 항목 수가 알려지지 않은 경우.
여기에는 두 가지 옵션이 있습니다 : 배열의 항목 수가 알려지지 않은 경우.
Toppings:{t:(i:chararray)}
또는 요소의 수가 항상 같을 경우
Toppings: (i: chararray, j: chararray, k: chararray)
출력을 줄 것이다.
(BBQ Chicken,{(Large,14.99),(Medium,12.99)},)
from https://stackoverflow.com/questions/21076583/pig-default-jsonloader-schema-issue by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] AWS EMR의 유로 오류 (0) | 2019.07.01 |
---|---|
[HADOOP] 스파크 스칼라의 커스텀 레코드 리더 PST 파일 포맷 (0) | 2019.07.01 |
[HADOOP] Hadoop / Hive 수집 목록 - 반복되는 항목 없음 (0) | 2019.07.01 |
[HADOOP] 원격 시스템에서 mapreduce 작업을 제출하는 중에 예외가 발생했습니다. (0) | 2019.07.01 |
[HADOOP] Spark가 HDFS 데이터를 읽고 동시에 계산을 수행 할 수 있습니까? (0) | 2019.07.01 |