概述
逗號分隔值(Comma-Separated Values,CSV,有時成爲字符分隔值)。
其文件以純文本形式存儲表格數據(數字和文本),文件的每一行都是一個數據記錄。
每個記錄由一個或多個字段組成,用逗號分隔。使用逗號作爲字段分隔符是此文件格式的名稱的來源,因爲分隔字符也可以不是逗號,有時也稱爲字符分隔值。
CSV 廣泛用於不同體系結構的應用程序之間交換數據表格信息,解決不兼容數據格式的互通問題。一般按照傳輸雙方既定標準進行格式定義,而其本身並無明確格式標準。
參考鏈接:https://www.jianshu.com/p/23e38ff6bd79
文件採用純文本存儲,需要使用某個字符集(ASCII、Unicode、UTF-8等
數據由記錄組成(一般是每一行一條記錄)
每條記錄被分隔符分爲一個個字段(常用的分隔符有 ',','\t',' ',';'等)
每條記錄都有同樣的字段序列 ``
優點
由於 CSV 文件格式的特性。
CSV 格式的文件可以用 Excel 和 WPS 等表格工具以表格的形式打開,便於查看和編輯。
缺點
由於 CSV 文件格式沒有嚴格的標準(實際上可以認爲沒有標準),會造成使用不同的工具打開時會有不同程度的亂碼問題。
(你本地的 Excel 和 WPS 打開同一個 CSV 文件,往往顯示的情況會不一樣。甚至同一個 Excel 軟件的不同版本,也會顯示不一樣的結果)
所以進行一些約定很重要。
CSV 文件解析的關鍵點
字符集:由於文件是採用純文本存儲的,不同字符集對每個字符的存儲方式不一樣。需要統一採用一個字符集才能很好的進行兼容。(關於常用的 ASCII、Unicode、UTF-8 字符集可以看一下這個ASCII、Unicode、UTF-8)
分隔符:一般常用的是 ‘,’(逗號分隔符)。但是有些 CSV 文件需要存儲文章句子信息等,這些信息 ‘,’ 符是常用字符,容易造成解析出錯或者解析方法複雜。可以選用 ‘^’ / ‘\t’ 等不常用的字符作爲分隔符。應用途而異,具體問題具體分析。
記錄分隔:一般來說以一行爲一條記錄,那麼記錄與記錄之間就是常用"換行符"進行分隔的?這裏就需要看一下附錄:回車符 CR 與換行符 LF 的行末結束符之爭。
空字段:我們常使用 CSV 文件當做表格來處理,那麼表格顯然存儲某些字段爲空的情況。這種情況下需要注意保留兩個分隔符,表示一段空字段。
指定分隔符後得到的結果
drop table if exists dim_channel;
create external table dim_channel (
channel string ,
name string
)
row format delimited fields terminated by ','
location '/data_coffe/ods/dim_channel'