首页 文章

火花分区镶木地板文件的Impala表

提问于
浏览
1

我使用Spark生成了一些分区拼花数据,我想知道如何将它映射到Impala表...遗憾的是,我还没有找到任何解决方案 .

实木复合地板的架构如下:

{ key: long,
value: string,
date: long }

我用 keydate 对它进行了分区,这给了我在hdfs上的这种目录:

/data/key=1/date=20170101/files.parquet
/data/key=1/date=20170102/files.parquet
/data/key=2/date=20170101/files.parquet
/data/key=2/date=20170102/files.parquet
...

你知道我怎么能告诉Impala用这个数据集创建一个带有相应分区的表(并且不必像我读过的那样在每个分区上循环)?可能吗 ?

先感谢您

1 回答

  • 0

    假设通过镶木地板的模式,您意味着数据集的模式,然后使用列进行分区,您将只有实际 files.parquet 文件中的键列 . 现在您可以按照以下步骤操作

    解决方案是使用impala外部表 .

    create external table mytable (key BIGINT) partitioned by (value String ,
    date BIGINT) stored as parquet location '....../data/'
    

    请注意,在上面的语句中,您必须提供路径直到数据文件夹

    alter table mytable recover partitions'
    
    refresh mytable;
    

    以上2个命令将根据表的模式自动检测分区,并了解子目录中存在的镶木地板文件 .

    现在,您可以开始查询数据了 .

    希望能帮助到你

相关问题