복붙노트

[HADOOP] 테이블을 생성하는 동안 하이브에서 한 번에 2 개의 필드 종결 자 (예 : ','및 '.')를 사용할 수 있습니까?

HADOOP

테이블을 생성하는 동안 하이브에서 한 번에 2 개의 필드 종결 자 (예 : ','및 '.')를 사용할 수 있습니까?

ID와 연도가있는 파일이 있습니다. 내 밭은로 구분되며, 내가 사용할 수있는 곳에 종지부를 찍을 수있는 기회가 있습니까?

해결법

  1. ==============================

    1.이것은 RegexSerDe를 사용하여 가능합니다.

    이것은 RegexSerDe를 사용하여 가능합니다.

    hive> CREATE EXTERNAL TABLE citiesr1 (id int, city_org string, ppl float) 
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' 
    WITH SERDEPROPERTIES ('input.regex'='^(\\d+)\\.(\\S+),(\\d++.\\d++)\\t.*')
    LOCATION '/user/it1/hive/serde/regex';
    

    위의 정규 표현식에서는 3 개의 정규식 그룹이 정의됩니다.

    (\\d+) leading digits is the int id column
    dot . is a separator
    (\\S+) - string without spaces is the city_org string column
    comma , is a separator
    (\\d++.\\d++) - float column
    \\t - tab separator
    

    자세한 내용은 여기를 참조하십시오 : https://community.hortonworks.com/articles/58591/using-regular-expressions-to-extract-fields-for-hi.html

  2. from https://stackoverflow.com/questions/47937735/can-i-use-2-fields-terminatorslike-and-at-a-time-in-hive-while-creatin by cc-by-sa and MIT license