hdfs
Создаёт таблицу из файла в HDFS. Данная табличная функция похожа на табличные функции url и file.
hdfs(URI, format, structure)
Входные параметры
- URI— URI файла в HDFS.
- format— формат файла.
- structure— структура таблицы. Формат- 'column1_name column1_type, column2_name column2_type, ...'.
Возвращаемое значение
Таблица с указанной с труктурой, предназначенная для чтения или записи данных в указанном файле.
Пример
Таблица из hdfs://hdfs1:9000/test и выборка первых двух строк из неё:
SELECT *
FROM hdfs('hdfs://hdfs1:9000/test', 'TSV', 'column1 UInt32, column2 UInt32, column3 UInt32')
LIMIT 2
┌─column1─┬─column2─┬─column3─┐
│       1 │       2 │       3 │
│       3 │       2 │       1 │
└─────────┴─────────┴─────────┘
Шаблоны поиска в компонентах пути
Путь к файлу может содержать шаблоны в режиме доступа только для чтения. Шаблоны могут содержаться в разных частях пути. Обрабатываться будут те и только те файлы, которые существуют в файловой системе и удовлетворяют всему шаблону пути.
- *— Заменяет любое количество любых символов (кроме- /), включая отсутствие символов.
- **— Заменяет любое количество любых символов, включая- /, то есть осуществляет рекурсивный поиск по вложенным директориям.
- ?— Заменяет ровно один любой символ.
- {some_string,another_string,yet_another_one}— Заменяет любую из строк- 'some_string', 'another_string', 'yet_another_one'. Эти строки также могут содержать символ- /.
- {N..M}— Заменяет любое число в интервале от- Nдо- Mвключительно (может содержать ведущие нули).
Конструкция с {} аналогична табличной функции remote, file.
Если ваш список файлов содержит интервал с ведущими нулями, используйте отдельную конструкцию с фигурными скобками для каждой цифры или используйте ?.
Виртуальные столбцы
- _path— Путь к файлу.
- _file— Имя файла.
Смотрите также