Reputation: 135
I have created one file format (CSV) and then one external table to load csv data from azure blob storage.
The external table is showing all columns as NULL except the "Value" column
File Format Code
COMPRESSION = 'NONE'
FIELD_DELIMITER = ','
RECORD_DELIMITER = '\n'
SKIP_HEADER = 0
FIELD_OPTIONALLY_ENCLOSED_BY = 'NONE'
EMPTY_FIELD_AS_NULL = FALSE
TRIM_SPACE = FALSE ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE ESCAPE = 'NONE'
ESCAPE_UNENCLOSED_FIELD = '\134' DATE_FORMAT = 'AUTO'
TIMESTAMP_FORMAT = 'AUTO'
NULL_IF = ('NULL');
EXTERNAL TABLE CODE
CREATE OR REPLACE EXTERNAL TABLE EXT_DIM_TESTTABLE
(
COL1 VARCHAR (1000) AS (value:"COL1"::string),
COL2 VARCHAR (1000) AS (value:"COL2"::string),
COL3 VARCHAR (1000) AS (value:"COL3"::string),
COL4 VARCHAR (1000) AS (value:"COL4"::string),
COL5 VARCHAR (1000) AS (value:"COL5"::string),
COL6 VARCHAR (1000) AS (value:"COL6"::string)
)
WITH
LOCATION=@TESTSTAGE
AUTO_REFRESH = true
FILE_FORMAT = 'FILE_TESTFORMAT_CSV'
PATTERN='.*TEST_DATA.csv';
Now when I select * from EXT_DIM_TESTTABLE, all columns shows NULL except VALUE one,
VALUE column is coming as below, the column names are not taken as "Col1" / "Col2" etc. but the values are correct. Rest all columns are NULL
{ "c1": "TESTING", "c2": "TESTING", "c3": "TESTING", "c4": "TESTING", "c5": "TESTING", "c6": "TESTING" } not sure what is missing here?
Upvotes: 1
Views: 803
Reputation: 11
It seems you are using value:"COL1"::string incorrectly.
Can you try using below DDL for external table?
CREATE OR REPLACE EXTERNAL TABLE EXT_DIM_TESTTABLE
(
COL1 VARCHAR(1000) AS (value:c1::string),
COL2 VARCHAR(1000) AS (value:c2::string),
COL3 VARCHAR(1000) AS (value:C3::string),
COL4 VARCHAR(1000) AS (value:c4::string),
COL5 VARCHAR(1000) AS (value:c5::string),
COL6 VARCHAR(1000) AS (value:c6::string)
)
WITH
LOCATION=@TESTSTAGE
AUTO_REFRESH = true
FILE_FORMAT = 'FILE_TESTFORMAT_CSV'
PATTERN='.*TEST_DATA.csv'
;
Upvotes: 1