csv文件的存儲格式以及hive讀取表的時候運行結果

概述

逗號分隔值(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'

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章