Невозможно вставить данные в секционированную таблицу с помощью Databricks - PullRequest
0 голосов
/ 04 августа 2020

Я новичок в Databricks. Я пытаюсь вставить данные в секционированную таблицу, используя Databricks с синтаксисом ниже. Но не повезло.

DROP TABLE IF EXISTS FireDept;

CREATE TABLE FireDept (CallNumber INT, UnitID STRING, IncidentNumber INT, 
CallType STRING,     CallDate STRING,  WatchDate STRING,       
 ReceivedDtTm STRING,       
 EntryDtTm STRING,       
 DispatchDtTm STRING,       
 ResponseDtTm STRING,       
 OnSceneDtTm STRING,       
 TransportDtTm STRING,                  
 HospitalDtTm STRING,       
 CallFinalDisposition STRING,       
 AvailableDtTm STRING,       
 Address STRING,       
 City STRING,       
 ZipcodeofIncident INT,       
 Battalion STRING,                 
 StationArea STRING,       
 Box STRING,       
 OriginalPriority STRING,       
 Priority STRING,       
 FinalPriority INT,       
 ALSUnit BOOLEAN,       
 CallTypeGroup STRING,
 NumberofAlarms INT,
 UnitType STRING,
 Unitsequenceincalldispatch INT,
 FirePreventionDistrict STRING,
 SupervisorDistrict STRING,
 NeighborhoodDistrict STRING,
 Location STRING,
 RowID STRING)
USING csv
OPTIONS (header "true")
PARTITIONED BY (CallType)
LOCATION '/mnt/Databricks/employee/Fire_Department_Calls_for_Service.csv';

Отображается РЕЗУЛЬТАТ: ОК

- ===========

%sql

select * from FireDept

РЕЗУЛЬТАТ отображается: ОК

Что не так в приведенных выше утверждениях? Пожалуйста, помогите мне. Заранее спасибо.

1 Ответ

0 голосов
/ 08 августа 2020

Все в порядке, в DDL Create table написано ОК, потому что таблица создана. Когда вы делаете выбор, он говорит ОК, потому что таблица пуста. Вставьте что-нибудь в таблицу и выберите * из FireDept, и вы увидите результат.

Когда вы вставляете в таблицу, вы не указываете имена столбцов, как в некоторых SQL диалектах .

Если вы пытаетесь создать таблицу из какого-либо файла csv в DataBricks, я предлагаю вам попробовать следующее:

%scala 
val data_from_csv = spark.read.format("csv")
  .option("header", "true")
  .option("inferSchema", "true")
  .load("/mnt/Databricks/employee/Fire_Department_Calls_for_Service.csv") 

data_from_csv.write.format("delta").mode("overwrite").saveAsTable("events")

Обратите внимание, что я не пробовал этот код, но решение таково.

...