2011-05-12 8 views
0

그래서, 나는 기존의 hdfs 디렉토리를 가지고 있는데, 파일들을 포함하고있다. 이 파일들은 모두 탭으로 구분됩니다. 이 여분의 모든 필드를 제외하고, 꽤 잘 작동하이브 - 가변 길이의 기존 hdfs 파일에 create 문을 작성하려면 어떻게해야합니까?

create external table 
    mytable(
     key string, 
     name string, 
     address string, 
     ssn string) 
row format delimited fields 
terminated by '09', lines terminted by '10' 
STORED AS TEXTFILE location '/MyHiveFiles/data'; 

내가 하이브 문이

.... 이 파일에는 ssn 필드 다음에 0과 x 사이의 추가 데이터 요소가 포함됩니다. 그들은 여전히 ​​탭으로 구분되며 '\ n'레코드는 구분됩니다. 나는 'valuex string'을 추가 할 수있다. (x는 여분의 요소의 증가분이다.) ... 그러나 나는 결국 얼마나 많이 있을지 모른다. 어쨌든 그것은 어수선 해 보인다.

하이브에게 그 행의 나머지 모든 필드를 'others string'과 같이 하나의 필드에 넣으라고 말하는 방법이 있습니까? 벌통 반환 값으로 구분 된 탭 일지라도 ... 나는 그걸로 괜찮습니다.

미리 감사드립니다.

답변

1

하이브에 테이블을 만들면 하이브에게 파일을 해석하는 방법을 알려주는 메타 데이터가 생성됩니다. Hive는 나머지 데이터에 대해서는 '알지 못합니다.'

다른 열을 배열로 추가하고 COLLECTION ITEMS TERMINATED BY '\0002' (\ 0002 또는 다른 문자)을 지정하면 탭은 배열 컬렉션을 종료하지 않으며 탭을 비롯한 모든 단일 요소로 반환되어야합니다. 이것을 아직 테스트하지 않았습니다. :)

+0

굉장한 ...이 배열 물건을 계산하려고 노력하고 있었다. .. 나는 그것이다고 생각한다. 많은 감사 !!!! – Wanderer

+0

@ John Galt ... who : 좋은 대답에 투표하는 것을 잊지 마세요. – Nija

+0

ok ... 그리고 단지 1 년 늦어 라! !! – Wanderer

관련 문제