Я впервые использую Polybase, и я пытаюсь загрузить образец файла CSV (с первой записью в качестве заголовка) из ADLS Gen2 в Synapse. Я уже создавал мастер-ключ раньше, поэтому больше не создавал его. Остальные шаги, которые я реализовал, следующие:
-- Step 1
CREATE DATABASE SCOPED CREDENTIAL access_cred
WITH
IDENTITY = 'my_name',
SECRET = '12345678910****==';
-- Step 2
CREATE EXTERNAL DATA SOURCE CreditCards
WITH
(
TYPE = HADOOP,
LOCATION = 'abfss://[email protected]',
CREDENTIAL = access_cred
);
-- Step 3
CREATE EXTERNAL FILE FORMAT CC_FileFormat
WITH
(
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS
(
FIELD_TERMINATOR = ',',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = FALSE
)
);
--Step 4
CREATE SCHEMA ext;
CREATE SCHEMA cc;
--Step 5: Create External Table
CREATE EXTERNAL TABLE ext.creditcards (
Card_Type_Full_Name varchar(50),
Issuing_Bank varchar(50),
Card_Number varchar(50),
Card_Holder_Name varchar(50),
CVV_CVV2 varchar(50),
Issue_Date varchar(50),
Expiry_Date varchar(50),
Billing_Date varchar(50),
Card_PIN varchar(50),
Credit_Limit varchar(50)
)
WITH (LOCATION='/CreditCards/', --I've a folder 'CreditCards' inside which the 'Creditcards.csv` file sits
DATA_SOURCE = CreditCards,
FILE_FORMAT = CC_FileFormat,
REJECT_TYPE = VALUE,
REJECT_VALUE = 0
);
--Step 6
CREATE TABLE cc.creditcards
WITH
(
DISTRIBUTION = REPLICATE,
CLUSTERED COLUMNSTORE INDEX
)
AS
SELECT * FROM ext.creditcards
OPTION (LABEL = 'CTAS : Load cc.creditcards');
Я не знаю, что делаю не так. Я пробовал просмотреть несколько сообщений в Интернете, но ничего не решает проблему, с которой я столкнулся. При попытке сделать SELECT * from <external_table>
я получаю указанную ниже ошибку. (Это также ошибка, которую я получаю на шаге 6, поскольку я использую команду CTAS для загрузки моей финальной таблицы.)
Msg 107090, Level 16, State 1, Line 74
HdfsBridge::recordReaderFillBuffer - Unexpected error encountered filling record reader buffer: MalformedInputException: Input length = 1
Я не понимаю, чего еще не хватает. Я также дал права доступа на уровне контейнера. Может ли кто-нибудь помочь мне в решении этой проблемы?