2014-10-31 3 views
0

런타임에 테이블 이름이 결정되는 create table 스크립트가 있습니다. SQL 스크립트에 값을 전달하려면 어떻게해야합니까?Hadoop Hcatalog - 키 값 쌍을 전달하는 방법

나는이

hcat -e "create table ${D:TAB_NAME} (name string)" -DTAB_NAME=person 

같은 것을 시도하고있다 그러나 나는 점점 오류를 유지한다. 올바른 구문을 사용할 수 있습니까?

답변

0

이 시도 :

hcat -e 'create table ${hiveconf:TAB_NAME} (name string);' -DTAB_NAME=person2 

을 다음 두 가지주의해야 할 것들 : 쉘에서

  1. 이 변수 확장 기본은 $ 그래서 당신의 ${D:TAB_NAME}도 hcat에 전달하기 전에 아무것도 확장지고 파서. 따라서 $을 이스케이프하거나 강한 인용문을 사용하여 ''을 사용하십시오.

  2. 변수 치환을 위해 D 대신에 을 사용하십시오. 후드에서 hcat은 여전히 ​​하이브를 사용하여 명령을 구문 분석합니다.