可以将Cloudera (5.12)配置为name,而不是position for PARQUET_FALLBACK_SCHEMA_RESOLUTION
我的Parquet文件并不总是有相同的列集,所以我们需要Impala以名称而不是位置来查找它们,在每个会话中用Hue来查找它们都有点痛苦:
set PARQUET_FALLBACK_SCHEMA_RESOLUTION=name;发布于 2017-11-30 16:32:20
谢谢你的信息阿莫斯
我在Cloudera论坛上发布了同样的问题,他们为我提供了一种通过Cloudera配置这个问题的方法。
http://community.cloudera.com/t5/Interactive-Short-cycle-SQL/PARQUET-FALLBACK-SCHEMA-RESOLUTION/m-p/62318#M3883
发布于 2017-11-30 08:22:03
恐怕这是无法配置的黑斑羚侧。
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;
}Impala服务器不设置默认查询选项。所有选项都设置在客户端会话设置的位置。因此,您需要配置您正在使用的客户端。例如,请参见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
....
}https://stackoverflow.com/questions/47542874
复制相似问题