Как CTAS создает файлы в s3, когда мы создаем случайные выборки, используя разделение? - PullRequest
0 голосов
/ 02 июля 2019

У меня есть данные на уровне категорий, существует около 12 тысяч категорий.Я пытаюсь создать случайные сэмплы из каждой категории в Афине и пытаюсь сохранить их в s3.

Если я пытаюсь создать сэмплы для каждой категории в отдельности, на выполнение запросов уходит более 48 часов.Я пытаюсь использовать CTAS, но я не уверен, как файлы паркета создаются внутри, потому что количество созданных файлов в s3 не соответствует количеству категорий.

Что может быть лучшим решением?

CREATE TABLE dataset_sample
            WITH
            (
             format = 'PARQUET',
             external_location = 'location'
            )
           AS SELECT sampled.product_id
            sampled.ps_category as category
            FROM
            (
                SELECT *, ROW_NUMBER() OVER (PARTITION BY ps_category ORDER BY rnd) as rnk
                FROM (
                    SELECT *, RANDOM() AS rnd
                    FROM table2
                    where
                      ps_category like 'DIY & Tools/Hardware/Nails, Screws & Fasteners%'
                    ) bucketed
            ) sampled
            WHERE rnk <= 40000

...