Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-05-2024 08:26 PM
Here is the code I used to produce the results shown in the image I shared earlier. It's a bit verbose, so I’m not entirely satisfied with it, but I hope it might provide some helpful insights for you.
%sql
WITH your_table AS (
-- Example CSV data
SELECT 'a,b,c\n1,"hello, world",3.14\n2,"goodbye, world",2.71' AS csv_column
),
split_lines AS (
-- Split data into lines
SELECT explode(split(csv_column, '\n')) AS line, row_number() OVER (ORDER BY csv_column) AS row_num
FROM your_table
),
data_without_header AS (
-- Exclude header row
SELECT line
FROM split_lines
WHERE row_num > 1
),
parsed_data AS (
-- Parse CSV format (considering newlines and double quotes)
SELECT
from_csv(
line,
'a INT, b STRING, c DOUBLE',
map('header', 'false', 'multiLine', 'true', 'quote', '"', 'delimiter', ',')
) AS parsed_row
FROM data_without_header
)
SELECT parsed_row.*
FROM parsed_data;
--------------------------
Takuya Omi (尾美拓哉)
Takuya Omi (尾美拓哉)