2017-11-28 39 views
0

PARQUET_FALLBACK_SCHEMA_RESOLUTION의 Cloudera Impala (5.12)를 '위치'대신 '이름'으로 기본 설정 할 수 있습니까? 우리는 임팔라가 아니라 위치보다 이름을 조회해야하므로 cloudera impala PARQUET_FALLBACK_SCHEMA_RESOLUTION

내 마루 파일

는 항상 동일한 C 럼 세트를 가지고 있지 않으며, 고통의 약간은 모든 세션에 대해 색조에서이 작업을 수행 :

세트 PARQUET_FALLBACK_SCHEMA_RESOLUTION = 이름;

답변

1

임팔라 측에서 설정이 불가능합니다.

case TImpalaQueryOptions::PARQUET_FALLBACK_SCHEMA_RESOLUTION: { 
    if (iequals(value, "position") || 
     iequals(value, to_string(TParquetFallbackSchemaResolution::POSITION))) { 
     query_options->__set_parquet_fallback_schema_resolution(
      TParquetFallbackSchemaResolution::POSITION); 
    } else if (iequals(value, "name") || 
       iequals(value, to_string(TParquetFallbackSchemaResolution::NAME))) { 
     query_options->__set_parquet_fallback_schema_resolution(
      TParquetFallbackSchemaResolution::NAME); 
    } else { 
     return Status(Substitute("Invalid PARQUET_FALLBACK_SCHEMA_RESOLUTION option: " 
      "'$0'. Valid options are 'POSITION' and 'NAME'.", value)); 
    } 
    break; 
    } 

임팔라 서버는 기본 쿼리 옵션을 설정하지 않습니다. 클라이언트 세션이 설정되는 모든 옵션이 설정됩니다. 따라서 사용중인 클라이언트를 구성해야합니다. 예를 들어 shell/impala_shell_config_defaults.py을 참조하십시오.

그러나, 여전히 정보 아모스에 대한 :)

에서 common/thrift/ImpalaInternalService.thrift

struct TQueryOptions { 
    .... 
    // Determines how to resolve Parquet files' schemas in the absence of field IDs (which 
    // is always, since fields IDs are NYI). Valid values are "position" (default) and 
    // "name". 
    43: optional TParquetFallbackSchemaResolution parquet_fallback_schema_resolution = 0 <--- change it to 1 
    .... 
}