복붙노트

[HADOOP] 하이브 테이블에서 열 이름 가져 오기

HADOOP

하이브 테이블에서 열 이름 가져 오기

하이브에서 다음 트릭을 통해 테이블에서 열 이름을 얻을 수 있다는 것을 알고 있습니다.

hive> set hive.cli.print.header=true;
hive> select * from tablename;

테이블에서 열 이름을 가져올 수도 있습니까?

나는 한 번만 필요로하는 것에 대한 설정을 변경해야하는 것을 싫어합니다.

내 현재 솔루션은 다음과 같습니다.

hive> set hive.cli.print.header=true;
hive> select * from tablename;
hive> set hive.cli.print.header=false;

이것은 너무 길고 DRY 원칙에 위배됩니다.

해결법

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

    1.단순히 열 이름을보고 싶다면이 한 행은 설정을 변경하지 않고 제공해야합니다.

    단순히 열 이름을보고 싶다면이 한 행은 설정을 변경하지 않고 제공해야합니다.

    describe database.tablename;
    

    그러나이 버전이 하이브 버전에서 작동하지 않으면이 코드가 제공하지만 기본 데이터베이스는 현재 사용중인 데이터베이스가됩니다.

    use database;
    describe tablename;
    
  2. ==============================

    2.$ table에 열을 표시하거나 Hive를 볼 수도 있습니다. 하이브 메타 데이터에 액세스하기 위해 모든 데이터베이스의 테이블 열을 검색하려면 어떻게해야합니까?

    $ table에 열을 표시하거나 Hive를 볼 수도 있습니다. 하이브 메타 데이터에 액세스하기 위해 모든 데이터베이스의 테이블 열을 검색하려면 어떻게해야합니까?

  3. ==============================

    3.Hive CLI 또는 beeline에서 desc tablename을 사용하여 모든 열 이름을 가져옵니다. 파일의 열 이름을 원하면 쉘에서 아래 명령을 실행하십시오.

    Hive CLI 또는 beeline에서 desc tablename을 사용하여 모든 열 이름을 가져옵니다. 파일의 열 이름을 원하면 쉘에서 아래 명령을 실행하십시오.

    $ hive -e 'desc dbname.tablename;' > ~/columnnames.txt
    

    여기서 dbname은 테이블이 상주하는 하이브 데이터베이스의 이름입니다. 루트 디렉토리에서 columnnames.txt 파일을 찾을 수 있습니다.

    $cd ~
    $ls
    
  4. from https://stackoverflow.com/questions/26181454/just-get-column-names-from-hive-table by cc-by-sa and MIT license