• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    해결됨

value 값 추가 파싱

22.07.21 16:00 작성 조회수 163

1

json 형태의 로그를 수집 후 

table a | parse json_parser(생성) 로 파싱을 하면 Key value가 정상적으로 파싱이 되는데 그 이후에 value들을 , 기준으로 짤라서 사용할 수 있을까요?? 이런 형태입니다. key(b): value(c,d,e)

 

답변 1

답변을 작성해보세요.

0

안녕하세요. 파싱 이후에 값을 재가공은 데이터 처리하는 데 있어 다양한 방식으로 빈번한 요구사항이 있습니다. 

일단 파싱을하면 b라는 컬럼에 c,d,e라는 텍스트로 값이 들어가게 될 것인데요.

이 값을 split이라는 함수로 배열로 만들 수 있습니다. 그 이후 배열의 값을 문자열 함수를 사용하여 원하는 대로 가공할 수 있습니다.

1. 값을 하나씩 별도의 필드로 추출하는 방식

- 이는 valueof 라는 함수를 사용하여 배열의 값을 필드로 추출하는 방식입니다.

json "{ 'b' : 'c,d,e'}" | eval b2 = split(b, ","), b_c = valueof(b2, 0), b_d = valueof(b2, 2), b_e = valueof(b2, 2)

2. 배열의 값을 하나씩 행으로 생성하는 방식

- 이는 explode라는 쿼리를 사용하여 c, d, e를 각각의 행으로 만드는 방식입니다. 

json "{ 'b' : 'c,d,e'}" | eval b2 = split(b, ",") | explode b2

 

함수를 가지고 배열 혹은 문자열 자체를 재가공 하실 수 있습니다.