Hive table 仅包含 parquet 文件中的一部分字段

Hive table with only a subset of fields from parquet file

我正在创建一个 Hive table,如下所示:

Create external table test as (
Col1 string,
Col2 string)
Stored as parquet ‘/file.parquet’

我的问题是 parquet 文件是否有 100 个字段,我需要我的 table 只使用其中的 5 个,我可以只在 table 定义中使用这 5 个列名,还是我需要做一些不同的事情?

是的,这会起作用。您可以使用所需的列创建外部 table。 我通过将包含 6 列的镶木地板文件写入外部路径然后创建一个外部 table 并在其顶部有 3 列来对此进行测试。 Post 查询 table 仅产生 3 列。

注意:如果您想通过 spark 访问所有列,可以从外部文件路径读取。