В настоящее время у меня есть таблица Hive с 1,5 миллиардами строк. Я хотел бы создать меньшую таблицу (используя ту же схему таблицы) с примерно 1 миллионом строк из исходной таблицы. В идеале, новые строки будут случайным образом отобраны из исходной таблицы, но получение верхней части 1M или нижней части 1M исходной таблицы также будет в порядке. Как мне это сделать?Улей: создание таблицы меньшего размера из большого стола
ответ
Как было предложено ранее climbage, вы, возможно, лучше всего использовали Hive's built-in sampling methods.
INSERT OVERWRITE TABLE my_table_sample
SELECT * FROM my_table
TABLESAMPLE (1m ROWS) t;
Этот синтаксис был introduced in Hive 0.11. Если вы используете более старую версию Hive, вы будете ограничены использованием синтаксиса PERCENT
.
INSERT OVERWRITE TABLE my_table_sample
SELECT * FROM my_table
TABLESAMPLE (1 PERCENT) t;
Вы можете изменить процент, чтобы соответствовать конкретным требованиям размера выборки.
Вы можете определить новую таблицу с той же схемой, что и исходная таблица.
INSERT OVERWRITE TABLE <tablename> <select statement>
Затем используйте
ЗЕЬЕСТА нужно будет запрашивать исходную таблицу, используйте LIMIT, чтобы получить только результаты 1M.
Добавление к этому, см [выборки в улье] (https://cwiki.apache.org/Hive/languagemanual-sampling.html) за помощь в построении оператора выбора с размером меньше образца – climbage
бы эта работа? CREATE TABLE small_table AS SELECT * FROM big_table LIMIT 1000000 – stackoverflowuser2010
Нет. Сначала вам нужно создать схему таблицы как отдельный оператор. Затем выполните INSERT OVERWRITE. – seedhead
Этот запрос вытащит верхние строки 1М и перезапишет их в новой таблице.
CREATE TABLE new_table_name AS
SELECT col1, col2, col3, ....
FROM original_table
WHERE (if you want to put any condition) limit 100000;
- 1. Создание меньшего размера видеофайла из фреймов
- 2. Создание миниатюры меньшего размера из существующего изображения
- 3. Свинья: разбиение большого большого файла на несколько файлов меньшего размера
- 4. Создание таблицы на улей
- 5. Как рассчитать БПФ большого размера с использованием БПФ меньшего размера?
- 6. Удаление дубликатов из большого стола
- 7. Создание диагональной матрицы большого размера
- 8. Разделение большого файла в Stata на файлы меньшего размера
- 9. Хотите сделать список меньшего размера вокруг максимального значения большого списка
- 10. разделение большого файла журнала на файлы меньшего размера по дате
- 11. Разделение большого файла на файл меньшего размера, дающий ошибку памяти
- 12. Tkinter: кнопка меньшего размера
- 13. Чтение с большого стола
- 14. Ошибка импорта большого стола
- 15. Проблема с запросом большого стола
- 16. Оптимизация большого стола Mysql
- 17. Создание таблицы улей над сложным паркетным файлом
- 18. Создание таблицы улей с столбцами ~ 40K
- 19. ImageButton изображения не изменение размера меньшего размера
- 20. Изменение размера изображения VMware до меньшего размера
- 21. Невозможно получить результаты из большого стола
- 22. Java, как извлечь текст из большого файла и импортировать его в файл меньшего размера
- 23. Slow Выберите из большого стола в Кассандре
- 24. robocopy хранить файл меньшего размера
- 25. Получить подматрицу матрицы меньшего размера
- 26. VBA для наложения таблицы меньшего размера. Выпадающий список
- 27. Как достичь меньшего размера исполняемого файла?
- 28. Настройка размера изображения для экранов меньшего размера
- 29. Изменение размера изображений до меньшего размера
- 30. Шрифт, где буквы небольшого регистра, являются буквами меньшего размера большого размера.
Можете ли вы подробнее рассказать о том, как использовать синтаксис выборки? Я прочитал страницу Hive, которую вы упомянули, но я все еще озадачен. Например, я хотел бы создать таблицу из 100 000 строк (из 1,5 миллиарда). Я попробовал INSERT OVERWRITE TABLE small_table AS SELECT * FROM big_table TABLESAMPLE (100k ROWS) t, но я получаю ошибку синтаксического анализа. Я также попробовал буквальный «100000» вместо «100 тыс.». – stackoverflowuser2010
Какую версию улья вы используете? Я считаю, что приведенный выше синтаксис был введен в 0.11. См.: Https://issues.apache.org/jira/browse/HIVE-3401 –
Я использую Hive 0.10.0.24: hive-hwi-0.10.0.24.jar – stackoverflowuser2010