2017-11-28 17 views
0

PARQUET_FALLBACK_SCHEMA_RESOLUTIONのCloudera Impala(5.12)を 'position'ではなく 'name'にデフォルト設定することは可能ですか?私たちは名前ではなく、位置、およびすべてのセッションのための色相でこれを行うには、痛みのそのビットでそれらをルックアップするのインパラを必要とするので、cloudera impala PARQUET_FALLBACK_SCHEMA_RESOLUTION

マイ寄せ木ファイルは常に列の同じセットを持っていない:

set PARQUET_FALLBACK_SCHEMA_RESOLUTION = name;

答えて

1

これはImpala側では設定できません。

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を参照してください。

しかし、あなたはまだ情報アモスのおかげで、

私はClouderaのフォーラムに同じ質問を投稿し、それらのコードを変更し、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 
    .... 
} 
関連する問題