Обнаружение заголовков CSV при создании дельта-таблицы DataBricks? - PullRequest
0 голосов
/ 12 января 2019

Излишне говорить, что я новичок в Spark DataBricks и Delta.

Я пытаюсь создать таблицу Delta, используя% sql из простого CSV, где первая строка является строкой заголовка. К сожалению, я не могу получить начальную команду CREATE TABLE для распознавания столбца заголовка в CSV (заметьте, я использовал быстрый запуск DataBricks в качестве руководства - https://docs.databricks.com/delta/quick-start.html)

Код, который я получил в своей записной книжке Databricks:

%sql
CREATE TABLE people
USING delta
LOCATION '/dbfs/mnt/mntdata/DimTransform/People.csv'

Я пытался использовать TBLPROPERTIES ("headers" = "true"), но безуспешно - см. Ниже

%sql
CREATE TABLE people
USING delta
TBLPROPERTIES ("headers" = "true")
AS SELECT *
FROM csv.'/mnt/mntdata/DimTransform/People.csv'

В обоих случаях данные CSV загружаются в таблицу, но строка заголовка просто включается в данные в качестве первой стандартной строки.

Есть идеи, как заставить этот% sql CREATE TABLE распознавать первую строку / строку заголовка как заголовок при загрузке из csv?

Спасибо

1 Ответ

0 голосов
/ 13 января 2019

Может быть, вам придется сделать небольшой обходной путь, потому что вы используете CSV-файл, а не JSON или PARQUET. Эти файлы имеют схему и номер CSV.

Поэтому я предлагаю сделать это ::

%sql
drop table if exists tempPeopleTable ;
CREATE TABLE tempPeopleTable
  USING csv
  OPTIONS (path "/mnt/mntdata/DimTransform/People.csv", header "true", inferSchema "true");

CREATE TABLE people
USING delta
AS SELECT * FROM tempPeopleTable;

drop table if exists tempPeopleTable;
...