从两个位置选择数据

时间:2019-07-17 02:51:16

标签: amazon-web-services amazon-redshift amazon-redshift-spectrum

我需要在S3上使用Redshift Spectrum进行数据采集。 但是,我需要带两个不同的文件夹(2018/2019)。我该如何兼顾“位置”部分?

现在我有:

create external table test_spectrum.full_events_test2
(
    timestamp bigint,
    device struct<locale:struct<country:varchar, language:varchar>, platform:struct<name:varchar>>,
)
row format serde 'org.openx.data.jsonserde.JsonSerDe'
with serdeproperties('ignore.malformed.json'='true', 'paths'='event_type', 'serialization.format'='1')
stored as
inputformat 'org.apache.hadoop.mapred.TextInputFormat'
outputformat 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
location 's3://myfolder/2019/'  -- But I want also 's3://myfolder/2018/'

但是,我也想要's3:// myfolder / 2018 /'

我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果您希望Amazon Redshift Spectrum扫描多个文件夹,则它们必须具有公共前缀。

不可能指定多个单独的文件夹作为位置。

因此,您应该将这些文件夹移动到一个公用文件夹下,而该公用文件夹中没有其他文件。