Hive 導入CSV文件


SerDe 介紹

Hive 使用如下FileFormat 類讀寫 HDFS files:

TextInputFormat/HiveIgnoreKeyTextOutputFormat: 讀寫普通HDFS文本文件.
SequenceFileInputFormat/SequenceFileOutputFormat: 讀寫SequenceFile格式的HDFS文件.

Hive 使用如下SerDe 類(反)序列化數據:
MetadataTypedColumnsetSerDe: 讀寫csv、tsv文件和默認格式文件
ThriftSerDe: 讀寫Thrift 序列化后的對象.

DynamicSerDe: 讀寫Thrift序列化后的對象, 不過不需要解讀schema中的ddl.


hive通過java寫入csv文件:http://blog.csdn.net/zengmingen/article/details/52637483


CSV Serde

CSV格式的文件也稱為逗號分隔值(Comma-Separated Values,CSV,有時也稱為字符分隔值,因為分隔字符也可以不是逗號。在本文中的CSV格式的數據就不是簡單的逗號分割的),其文件以純文本形式存儲表格數據(數字和文本)。CSV文件由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號或制表符。通常,所有記錄都有完全相同的字段序列。


默認的分隔符:

DEFAULT_ESCAPE_CHARACTER \
DEFAULT_QUOTE_CHARACTER ?" ? ? //如果沒有,則不需要指定
DEFAULT_SEPARATOR ? ? ? ?,

建表語句:

CREATE TABLE csv_table(a string, b string) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( ? "separatorChar" = "\t", ? "quoteChar" ? ? = "'", ? "escapeChar" ? ?= "\\") ?STORED AS TEXTFILE;
separatorChar:分隔符
quoteChar:引號符
escapeChar:轉意符


實驗操作

準備數據

從數據庫導出。

文件1:user1.csv



文件2:user2.csv



文件3:user3.csv




創建表

hive (zmgdb)> create table csv_t1(a string,b string,c string)
? ? ? ? ? ? > row format serde
? ? ? ? ? ? > 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
? ? ? ? ? ? > with
? ? ? ? ? ? > SERDEPROPERTIES
? ? ? ? ? ? > ("separatorChar"=",") ?
? ? ? ? ? ? > STORED AS TEXTFILE;


引號符“

hive (zmgdb)> create table csv_t2(a string,b string,c string)
? ? ? ? ? ? > ?row format serde
? ? ? ? ? ? > 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
? ? ? ? ? ? > with
? ? ? ? ? ? > SERDEPROPERTIES
? ? ? ? ? ? > ?("separatorChar"=",","quotechar"="\"")
? ? ? ? ? ? > ?STORED AS TEXTFILE;
OK
Time taken: 0.072 seconds


轉義符\

hive (zmgdb)> create table csv_t3(a string,b string,c string)
? ? ? ? ? ? > ?row format serde
? ? ? ? ? ? > 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
? ? ? ? ? ? > with
? ? ? ? ? ? > SERDEPROPERTIES
? ? ? ? ? ? > ?("separatorChar"=",","escapeChar" ? ?= "\\" )
? ? ? ? ? ? > ?STORED AS TEXTFILE;
OK
Time taken: 0.088 seconds


導入

hive (zmgdb)> load data local inpath '/data/user1.csv' into table csv_t1;
Loading data to table zmgdb.csv_t1
OK
Time taken: 0.536 seconds


hive (zmgdb)> load data local inpath '/data/user2.csv' into table csv_t2;
Loading data to table zmgdb.csv_t2
OK
Time taken: 0.181 seconds


hive (zmgdb)> load data local inpath '/data/user3.csv' into table csv_t3;
Loading data to table zmgdb.csv_t3


查詢

hive (zmgdb)> select * from csv_t1;
OK
csv_t1.a ? ? ? ?csv_t1.b ? ? ? ?csv_t1.c
% ? ? ? root ? ?Y
hello110 ? ? ? ?root ? ?Y
127.0.0.1 ? ? ? root ? ?Y
::1 ? ? root ? ?Y
localhost ? ? ? hive ? ?N
% ? ? ? hive ? ?Y
Time taken: 0.74 seconds, Fetched: 6 row(s)


hive (zmgdb)> select * from csv_t2;
OK
csv_t2.a ? ? ? ?csv_t2.b ? ? ? ?csv_t2.c
% ? ? ? root ? ?Y
hello110 ? ? ? ?root ? ?Y
127.0.0.1 ? ? ? root ? ?Y
::1 ? ? root ? ?Y
localhost ? ? ? hive ? ?N
% ? ? ? hive ? ?Y
Time taken: 0.068 seconds, Fetched: 6 row(s)


hive (zmgdb)> select * from csv_t3;
OK
csv_t3.a ? ? ? ?csv_t3.b ? ? ? ?csv_t3.c
% ? ? ? root ? ?Y
hello110 ? ? ? ?'root' ?Y
127.0.0.1 ? ? ? NULL ? ?NULL

::1 ? ? root ? ?Y
localhost ? ? ? hive ? ?N
% ? ? ? hive ? ?Y
Time taken: 0.07 seconds, Fetched: 6 row(s)


補充

如果文件內容的引號符,分隔符,轉義符,不是默認的,也不是建表語句指定的,則原樣導入。

文件user4.csv:引號符是中文單引號



導入csv_t1表

hive (zmgdb)> load data local inpath '/data/user4.csv' into table csv_t1;
Loading data to table zmgdb.csv_t1

OK
Time taken: 0.191 seconds


hive (zmgdb)> select * from csv_t1;
OK
csv_t1.a ? ? ? ?csv_t1.b ? ? ? ?csv_t1.c
% ? ? ? root ? ?Y
hello110 ? ? ? ?root ? ?Y
127.0.0.1 ? ? ? root ? ?Y
::1 ? ? root ? ?Y
localhost ? ? ? hive ? ?N
% ? ? ? hive ? ?Y
‘111111’ ? ? ? ?‘root’ ?‘Y’
‘112222’ ? ? ? ?‘r2222’ ‘Y’

Time taken: 0.06 seconds, Fetched: 14 row(s)
hive (zmgdb)>?





本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539142.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539142.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539142.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

騰訊云mysql架構_一個數據庫存儲架構的獨白

本文由云社區發表本文作者:許中清,騰訊云自研數據庫CynosDB的分布式存儲CynosStore負責人。從事數據庫內核開發、數據庫產品架構和規劃。曾就職于華為,2015年加入騰訊,參與過TBase(PGXZ)、CynosDB等數據庫產品研發。專注于關系數據…

Hive高級函數

Hive的函數太多了。用法和sql的差不多。 簡單查詢 select ... from...where... 使用各種函數 hive>show functions;//查看所有函數 hive>describe function explode;//查看函數的使用方法 LIMIT語句 列別名 嵌套select語句 標準函數: reverse() upper() ...…

groupby索引有效嗎_SQL IN 一定走索引嗎?

摘要IN 一定走索引嗎?那當然了,不走索引還能全部掃描嗎?好像之前有看到過什么Exist,IN走不走索引的討論。但是好像看的太久了,又忘記了。哈哈,如果你也忘記了MySQL中IN是如何查詢的,就來復習下吧。問題問題…

mysql函數使用場景_mysql的函數和存儲過程的比較,以及在實際場景中的使用案例...

一.存儲過程和函數的區別函數調用有返回值存儲過程調用用call語句,函數調用直接飲用函數名參數IN,OUT,INOUT只適用于存儲過程,對函數而言所有參數默認都是輸入參數IN用于把數值傳入到存儲過程中OUT用于輸出參數將數值傳遞給調用者…

hive性能調優

原文:http://www.tuicool.com/articles/rMvQvm ---------------------------------------------------------------------- limit 限制調整 -- 因為使用 limit 語句時候,是先執行整個查詢語句,然后再返回部分結果的 set hive.limit.optimize…

推薦系統之 BPR 算法及 Librec的BPR算法實現【1】

【推薦系統之 BPR 算法】 1、關于BPR的論文原文: BPR: Bayesian Personalized Ranking from Implicit Feedback 2、參考1:論文快讀 - BPR: Bayesian Personalized Ranking from Implicit Feedback (該博主的網站不錯,尤其論文快…

ios 篩選_萬千網友讓quot;低調使用quot;的軟件!居然還支持iOS

點擊藍字關注我們昨天的耳朵神器大家感覺怎么樣?享受了耳朵今天我們享受一下眼睛~可能很多同學對漫畫是情有獨鐘但是,之前小黑一直介紹的都是安卓端的軟件今天要給大家介紹的這款軟件是IOS安卓都有終于可以不被IOS的同學吐槽了而且經過測試小黑真的想說一…

Linux卸載/刪除多余網卡

卸載 使用命令ifconfig命令查看網卡情況 確認自己使用的是哪一塊網卡,然后把其它的網卡都卸載掉。 運行命令ifconfig 網卡名稱 down。 如: ifconfig eth1 down 再次運行ifconfig就會發現被卸載掉的網卡沒了。現在可以ping 一下內網的IP試試看能不能pin…

CentOS7:JDK1.7.0_80安裝

一、安裝前檢查 執行以下命令: rpm -qa | grep jdk 查看系統是否已經自帶openjdk,如果存在 執行以下命令: yum -y remove files files為查出的、系統自帶的openjdk相關文件,運行以上命令將相關文件卸載 執行命令 java -version[rootlocalhost…

python海龜繪圖畫圣誕帽男人_python海龜繪圖實例教程

本文以實例形式介紹了python turtle模塊即海龜繪圖的使用方法,對于需要進行圖形編程的朋友相信會有一定的借鑒價值。python turtle模塊簡介:python2.6版本中引入的一個簡單的繪圖工具,叫做海龜繪圖(turtle graphics)1.使用海龜繪圖首先我們需…

spring+mybatis 多數據源整合

原文&#xff1a;http://blog.csdn.net/fhx007/article/details/12530735 ---------------------------------------------------------------------------------- 直接看spring的配置吧 <!-- 數據源配置 --> <bean id"ds1" class"org.apache.commo…

四管前級怎么去掉高低音音調_一些歌曲音調太高怎么才能唱上去??

展開全部首先得提高肺活量 然后就是練聲&#xff01;怎 樣 練 聲&#xff1a;練聲的目的1&#xff0c;使歌唱發聲系統各器官的肌肉更e68a84e8a2ad62616964757a686964616f31333236373231有力&#xff0c;并能協調一致。2&#xff0c;建立正確的聲音概念。3&#xff0c;擴展音域&…

python繪制星空_用python畫星空源代碼是什么?

用python畫星空源代碼是什么&#xff1f;用python畫星空源代碼是from turtle import *from random import random,randintscreen Screen()width ,height 800,600screen.setup(width,height)screen.title("模擬3D星空")screen.bgcolor("black")screen.mod…

Linux - xshell上傳文件報錯亂碼

xshell上傳文件報錯亂碼&#xff0c;解決方法 rz -be 回車 下載sz filename轉載于:https://www.cnblogs.com/RzCong/p/8600899.html

java元數據是什么_用存儲過程和 JAVA 寫報表數據源有什么弊端?

用存儲過程和 JAVA 寫報表數據源有什么弊端&#xff1f;跟著小編一起來一看一下吧&#xff01;我們在報表開發中經常會使用存儲過程準備數據&#xff0c;存儲過程支持分步計算&#xff0c;可以實現非常復雜的計算邏輯&#xff0c;為報表開發帶來便利。所以&#xff0c;報表開發…

mysql多實例安裝啟動_MySQL多實例安裝啟動

Tips&#xff1a;之前我們的一個實例是mysql3306&#xff0c;我們現在再安裝一個mysql33071。和之前一樣&#xff0c;創建需要的目錄文件夾mkdir -p /data/mysql/mysql3307/{data,logs,tmp}創建完 就給文件授權chown -R mysql:mysql /data/mysql/mysql3307/2.進入mysql3307cd /…

用vhdl實現4位加減法計數器_32位加減法器設計

功能特性設計思路基于一位全加器&#xff0c;設計32位并行加法器。并行加法器中全加器的位數與操作數相同&#xff0c;影響速度&#xff08;延時&#xff09;的主要因素是進位信號的傳遞。主要的高速加法器【1】有基本上都是在超前進位加法器&#xff08;CLA&#xff09;的基礎…

用vim + xdebug 來追蹤thinkphp的執行過程

tree命令的使用幾個有實際應用的參數 -a 這是默認的 -d: 只顯式目錄, 不需要顯式目錄下的文件 -L: 列出顯式的深度. 當前目錄下的所有東西為第一級...在tp下, 有多個Common但是它們的含義不同:Application|- Common (前后臺都使用的公共文件所在目錄)|- Common (公共函數目錄)…

mybatis 中#與$的區別

MyBatis/Ibatis中#和$的區別 #{} 解析的是占位符&#xff1f;可以防止SQL注入&#xff0c;比如打印出來的語句 select * from table where id? 然而${} 則是不能防止SQL注入打印出來的語句 select * from table where id2 實實在在的參數

綠色背景配什么顏色文字_灰色褲子配什么顏色上衣好看

我們許多人都喜歡灰色。灰色是一種很酷的自然色。灰色大氣而沉穩。它介于黑白之間&#xff0c;是一種多用途的顏色&#xff0c;與其他顏色搭配將變得時尚而優雅。那么秋冬季節灰色褲子配什么顏色的上衣好看呢&#xff1f;接下來就來看一組時尚大人的灰色褲子穿搭吧。look1 保溫…