Есть ли разница в создании таблиц с CSV против другой таблицы? - PullRequest
0 голосов
/ 10 мая 2018

Я создал таблицу с помощью приведенного ниже кода в Microsoft Azure Databricks (однако я думаю, что это применимо к любой среде sql):

CREATE TABLE employee_data_csv (
column1,
column2,
column3 )
USING csv
OPTIONS (path "C:/pathway/xxxx", header "true", mode "FAILFAST")

Мне сказали, что создание таблицы методом USING csv может повлиять на производительность. Было предложено использовать созданную выше таблицу и создать еще одну таблицу, например:

CREATE TABLE employee_data
Select column1, column2, column3
FROM employee_data_csv

Я не заметил каких-либо улучшений скорости. Есть ли какие-либо изменения в производительности между этими двумя таблицами или подходами? Нужен ли второй шаг?

1 Ответ

0 голосов
/ 10 мая 2018

Поскольку данные представлены в формате CSV, вам необходимо указать формат, который вы указали при создании таблицы.

CTAS (создать таблицу как выбор) не будет переводить базовый формат, это то, что вам нужно будет предоставить.

Преимущество в скорости будет зависеть от нескольких факторов.Размер набора данных, тип запроса и размер кластера будут влиять на производительность чтения.

Вы можете запустить следующую ячейку SQL, чтобы проверить формат:

%sql
desc extended employee_data

В поле Provider будет указан формат файла, например, csv в этом примере.

Чтобы преобразовать в паркет, вы можете выполнить следующее:

CREATE TABLE employee_data USING PARQUET as 
Select column1, column2, column3
FROM employee_data_csv
...