亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Hive官方手冊(cè)翻譯(Getting Started) - 實(shí)踐檢驗(yàn)

系統(tǒng) 4602 0

Hive官方手冊(cè)翻譯(Getting Started) - 實(shí)踐檢驗(yàn)真理 - 51CTO技術(shù)博客

Hive官方手冊(cè)翻譯(Getting Started)

2012-07-23 16:18:12

版權(quán)聲明:原創(chuàng)作品,如需轉(zhuǎn)載,請(qǐng)與作者聯(lián)系。否則將追究法律責(zé)任。

翻譯Hive官方文檔系列,文中括號(hào)中包含 注: 字樣的,為我自行標(biāo)注的,水平有限,翻譯不是完美無(wú)缺的。如有疑問(wèn),請(qǐng)參照Hive官方文檔對(duì)照查看。

內(nèi)容列表
Cloudera制作的Hive介紹視頻
安裝與配置
系統(tǒng)需求
安裝Hive發(fā)行版
從Hive源碼編譯
運(yùn)行Hive
配置管理概覽
運(yùn)行時(shí)配置
Hive, Map-Reduce 與本地模式
錯(cuò)誤日志
DDL 操作
元數(shù)據(jù)存儲(chǔ)
DML 操作
SQL 操作
查詢(xún)示例
SELECTS 和 FILTERS
GROUP BY
JOIN
MULTITABLE INSERT
STREAMING
Simple Example Use Cases
MovieLens User Ratings
Apache Weblog Data
免責(zé)聲明: Hive目前僅在Unix(linux)和Mac系統(tǒng)下使用Java 1.6測(cè)試運(yùn)行,可以在這些或類(lèi)似的平臺(tái)上正常運(yùn)行。并不支持在Cygwin上工作(注:windows還是別想了)。
絕大部分的測(cè)試工作是基于Hadoop 0.20完成的 - 所以,我們建議不要使用其他版本,以避免編譯或運(yùn)行的異常。

Cloudera制作的Hive介紹視頻
安裝與配置
系統(tǒng)需求
Java 1.6
Hadoop 0.20.x.(注:目前0.9.0支持hadoop 1.0.x)
用發(fā)行版安裝Hive
使用下載工具從Apache下載鏡像下載最近的Hive發(fā)行包(查看 Hive發(fā)行包)
下一步你需要解壓縮Tar包,這將會(huì)創(chuàng)建一個(gè)名為hive-x.y.z的子目錄:
$ tar -xzvf hive-x.y.z.tar.gz

?

設(shè)置HIVE_HOME環(huán)境變量指向到Hive的安裝目錄:
$ cd hive-x.y.z
$ export HIVE_HOME={{pwd}}

?

最后, 將$HIVE_HOME/bin添加到你的PATH環(huán)境變量中:
$ export PATH=$HIVE_HOME/bin:$PATH

?

使用源碼創(chuàng)建Hive
Hive SVN 源: http://svn.apache.org/repos/asf/hive/trunk
$ svn co http://svn.apache.org/repos/asf/hive/trunk hive
$ cd hive
$ ant clean package
$ cd build/dist
$ ls
README.txt
bin/ (所有shell腳本)
lib/ (所需的jar文件)
conf/ (配置文件)
examples/ (示例輸入與查詢(xún)文件)

?

在接下來(lái), 我們會(huì)交替的使用build/dist和<install-dir>.
運(yùn)行Hive
Hive 使用Hadoop,這意味著:
你必須在PATH里面設(shè)置了hadoop路徑 (注:原文是 you must have hadoop in your path,我認(rèn)為這個(gè)path應(yīng)該是大寫(xiě)的) ?或者
export HADOOP_HOME=<hadoop-install-dir>
作為附加的, 你必須在創(chuàng)建Hive庫(kù)表前,在HDFS上創(chuàng)建/tmp和/user/hive/warehouse,并且將它們的權(quán)限設(shè)置為chmod g+w.
完成這個(gè)操作的命令如下:
$ $HADOOP_HOME/bin/hadoop fs -mkdir???????????? /tmp
$ $HADOOP_HOME/bin/hadoop fs -mkdir???????????? /user/hive/warehouse
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w???? /tmp
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w???? /user/hive/warehouse

?

我同樣發(fā)現(xiàn)設(shè)置 HIVE_HOME 是很重要的,但并非必須
$ export HIVE_HOME=<hive-install-dir>

?

在Shell中使用Hive命令行(cli)模式:
$ $HIVE_HOME/bin/hive

?

配置文件管理概述
Hive 默認(rèn)的配置文件保存在 <install-dir>/conf/hive-default.xml
你可以修改其中的配置,并重命名這個(gè)文件為 <install-dir>/conf/hive-site.xml(注:我建議你還是保留原始配置文件)
Hive配置文件的位置可以通過(guò)設(shè)置HIVE_CONF_DIR環(huán)境變量來(lái)改變.
Log4j的配置保存在 <install-dir>/conf/hive-log4j.properties
Hive的配置存在于Hadoop之上,這意味著Hadoop的配置默認(rèn)會(huì)被繼承到Hive中.
Hive 配置可以被如下方式控制:
編輯 hive-site.xml 并定義任何需要的變量 (包括hadoop的變量)
從 cli 模式使用使用set命令 (看下面)
使用如下方式:
$ bin/hive -hiveconf x1=y1 -hiveconf x2=y2
這個(gè)例子分別設(shè)置了變量x1為y1,x2為y2
設(shè)置使用 HIVE_OPTS 環(huán)境變量 "-hiveconf x1=y1 -hiveconf x2=y2" 與上面的功能相同
運(yùn)行時(shí)配置
Hive 查詢(xún)是執(zhí)行map-reduce查詢(xún),并且,這些查詢(xún)是可以被hadoop的配置所控制的.
命令行命令 'SET' 可以被用來(lái)設(shè)置任何hadoop(或者h(yuǎn)ive)的配置變量,例如:
????hive> SET mapred.job.tracker=myhost.mycompany.com:50030;
????hive> SET -v;

?

后者(注 SET -v)用來(lái)查看當(dāng)前全部的設(shè)置. 而不使用 -v 選項(xiàng),則是用來(lái)查看當(dāng)前與Hadoop不同的配置.
Hive, Map-Reduce 與本地模式
Hive編譯器會(huì)為絕大多數(shù)查詢(xún)生成map-reduce的jobs。這些Jobs使用下面這個(gè)變量來(lái)表明被提交到Map-Reduce集群中:
????mapred.job.tracker

?

由于這通常是在一個(gè)多節(jié)點(diǎn)的map-reduce集群中被指出,Hadoop同樣有個(gè)就近的方式來(lái)在用戶(hù)的工作機(jī)上運(yùn)行map-reduce jobs。這就在小數(shù)據(jù)集的查詢(xún)上顯得非常有用 - 在這種情況下,本地模式運(yùn)行通常會(huì)比將任務(wù)提交到整個(gè)大集群中查詢(xún)更快。數(shù)據(jù)從HDFS上獲取是透明的。同樣的,由于本地模式僅運(yùn)行一個(gè)reducer,這樣,在大數(shù)據(jù)查詢(xún)上是非常慢的。
從 0.7 版本開(kāi)始, Hive全面支持本地運(yùn)行模式,要使用這個(gè)模式,請(qǐng)按照下列進(jìn)行設(shè)置:
????hive> SET mapred.job.tracker=local;

?

作為附加的,mapred.local.dir應(yīng)該指定一個(gè)合法的本機(jī)路徑(注:安裝hive的那臺(tái)服務(wù)器) (例如: /tmp/<username>/mapred/local). (否則,用戶(hù)將獲取一個(gè)定位本地空間的異常拋出).
從0.7版本開(kāi)始, Hive同樣支持自動(dòng)/非自動(dòng)地使用本地模式來(lái)完成map-reduce jobs,相關(guān)的選項(xiàng)是:
????hive> SET hive.exec.mode.local.auto=false;

?

請(qǐng)注意這個(gè)功能默認(rèn)是關(guān)閉的,如果打開(kāi) - Hive將分析每一個(gè)查詢(xún)的map-reduce job ,并且如果以下閥值被確認(rèn)為OK,就嘗試運(yùn)行在本地:
全部job的輸入大小低于: hive.exec.mode.local.auto.inputbytes.max (128MB 默認(rèn))
全部的map任務(wù)數(shù)低于: hive.exec.mode.local.auto.tasks.max (4 個(gè)默認(rèn))
全部reduce任務(wù)數(shù)等于 1 或者 0.
對(duì)于查詢(xún)大于小數(shù)據(jù)集,或者需要查詢(xún)?cè)诙鄠€(gè)map-reduce jobs中完成,但是子查詢(xún)很小的(注:小于上述條件),jobs仍可能使用本地模式來(lái)運(yùn)行。
注意,可能不同的hadoop服務(wù)器節(jié)點(diǎn)和hive客戶(hù)端的運(yùn)行時(shí)環(huán)境(由于不同的jvm版本或者不同的軟件庫(kù))。運(yùn)行本地模式可能會(huì)導(dǎo)致一個(gè)不可被捕獲的錯(cuò)誤。同樣需要注意的是,本地運(yùn)行模式是在一個(gè)獨(dú)立的子jvm(hive 客戶(hù)端的子進(jìn)程)中完成的。 如果用戶(hù)希望,子jvm所能使用的最大內(nèi)存數(shù),可以通過(guò)訪問(wèn)hive.mapred.local.mem來(lái)進(jìn)行控制。默認(rèn)設(shè)置是0,所以Hive允許Hadoop來(lái)決定子jvm的默認(rèn)內(nèi)存限制
錯(cuò)誤日志
Hive 使用 log4j 來(lái)記錄日志. 默認(rèn)來(lái)說(shuō),日志不會(huì)被返回到CLI模式的控制臺(tái)上(注:也就是CRT中)。默認(rèn)的日志記錄等級(jí)是WARN,并被保存到以下文件夾中:
/tmp/<user.name>/hive.log
如果用戶(hù)愿意 - 日志可以通過(guò)修改下面的參數(shù)來(lái)返回到控制臺(tái)上:
bin/hive -hiveconf hive.root.logger=INFO,console
另外,用戶(hù)可以改變記錄等級(jí):
bin/hive -hiveconf hive.root.logger=INFO,DRFA
注意,配置項(xiàng) hive.root.logger 在hive初始化以后,即不能通過(guò)使用'set'命令來(lái)改變了
Hive同樣會(huì)為每個(gè)hive會(huì)話(huà)保存查詢(xún)?nèi)罩荆?tmp/<user.name>/ (注:本機(jī)路徑下),但是可以通過(guò)修改 hive-site.xml 中的 hive.querylog.location屬性來(lái)變更。
Hive在一個(gè)hadoop集群上運(yùn)行過(guò)程中的日志是由Hadoop的配置所決定的。通常Hadoop會(huì)為每個(gè)map和reduce任務(wù)創(chuàng)建日志文件,并保存在運(yùn)行任務(wù)的集群服務(wù)器上。日志文件可以通過(guò)Hadoop Jobtracker提供的Web UI上的Task Detail頁(yè)面來(lái)跟蹤觀察。
運(yùn)行本地模式時(shí)(mapred.job.tracker=local),Hadoop/Hive 將會(huì)將執(zhí)行日志放在本機(jī)上,從0.6版本開(kāi)始 - Hive使用hive-exec-log4j.properties (如果不存在,則是使用hive-log4j.properties文件)來(lái)決定默認(rèn)的日志的保存方式。默認(rèn)的配置文件將為每個(gè)查詢(xún)執(zhí)行在本地模式下的日志放到/tmp/<user.name>。這樣做的目的是為了將配置單獨(dú)管理,并可以將日志集中存放到一個(gè)用戶(hù)需要的位置(例如一個(gè)NFS文件服務(wù)器)上。執(zhí)行日志對(duì)于運(yùn)行時(shí)錯(cuò)誤的debug并無(wú)幫助。
錯(cuò)誤日志對(duì)于定位問(wèn)題非常有用,請(qǐng)將存在的任何bug發(fā)送到hive-dev@hadoop.apache.org

DDL 操作
創(chuàng)建Hive表和查看使用
hive> CREATE TABLE pokes (foo INT , bar STRING);


創(chuàng)建一個(gè)包含兩個(gè)字段,名稱(chēng)為pokes的表,第一個(gè)字段是int(注:整型),第二個(gè)字段是string(注:字符串)
hive> CREATE TABLE invites (foo INT , bar STRING) PARTITIONED BY (ds STRING);


創(chuàng)建一個(gè)名為invites的表,其中包含兩個(gè)字段和一個(gè)叫做ds的分區(qū)(partition)字段. 分區(qū)字段是一個(gè)虛擬的字段,本身并不包含在數(shù)據(jù)中,但是是從加載進(jìn)來(lái)的數(shù)據(jù)中特別衍生出來(lái)的數(shù)據(jù)集.
默認(rèn)情況下,表被假定是純文本的格式,并且使用^A(ctrl-a)來(lái)作為數(shù)據(jù)分割的。
hive> SHOW TABLES;


列出所有的表
hive> SHOW TABLES '.*s' ;

?

列出所有結(jié)尾包含 's' 的表名。匹配方式使用Java正則表達(dá)式,查看下列連接獲取關(guān)于Java正則的信息 ?http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html
hive> DESCRIBE invites;


查看invites表的全部字段
可以修改表名,增加刪除新的字段等:
hive> ALTER TABLE pokes ADD COLUMNS (new_col INT );
hive> ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT 'a comment' );
hive> ALTER TABLE events RENAME TO 3koobecaf;


刪除表:
hive> DROP TABLE pokes;

?

元數(shù)據(jù)存儲(chǔ)
元數(shù)據(jù)默認(rèn)使用Derby數(shù)據(jù)庫(kù)保存在本地文件系統(tǒng)中,并保存在./metastore_db下。通過(guò)修改conf/hive-default.xml中的javax.jdo.option.ConnectionURL變量修改。
當(dāng)前,在默認(rèn)配置下,元數(shù)據(jù)每次只能同時(shí)被一個(gè)用戶(hù)所使用。
元數(shù)據(jù)可以存儲(chǔ)在任何一個(gè)使用JPOX支持的數(shù)據(jù)庫(kù)中,這些關(guān)系型數(shù)據(jù)庫(kù)的連接和類(lèi)型可以通過(guò)兩個(gè)變量進(jìn)行控制。javax.jdo.option.ConnectionURL 和 javax.jdo.option.ConnectionDriverName。
你需要查看數(shù)據(jù)庫(kù)的JDO(或JPOX)手冊(cè)來(lái)獲取更多信息。
數(shù)據(jù)庫(kù)的Schema定義在JDO元數(shù)據(jù)注釋文件package.jdo中,位置在src/contrib/hive/metastore/src/model。
計(jì)劃在未來(lái),元數(shù)據(jù)存儲(chǔ)引擎可以成為一個(gè)獨(dú)立的服務(wù)。
如果你想將元數(shù)據(jù)作為一個(gè)網(wǎng)絡(luò)的服務(wù)來(lái)在多個(gè)節(jié)點(diǎn)中訪問(wèn),請(qǐng)嘗試HiveDerbyServerMode.

DML 操作
將文件中的數(shù)據(jù)加載到Hive中:
hive> LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;


加載到pokes表的文件包含兩個(gè)用ctrl-a符號(hào)分割的數(shù)據(jù)列,'LOCAL' 意味著文件是從本地文件系統(tǒng)加載,如果沒(méi)有 'LOCAL' 則意味著從HDFS中加載。
關(guān)鍵詞 'OVERWRITE' 意味著當(dāng)前表中已經(jīng)存在的數(shù)據(jù)將會(huì)被刪除掉。
如果沒(méi)有給出 'OVERWRITE',則意味著數(shù)據(jù)文件將追加到當(dāng)前的數(shù)據(jù)集中。
注意:
通過(guò)load命令加載的數(shù)據(jù)不會(huì)被校驗(yàn)正確性。
如果文件在HDFS上,他將會(huì)被移動(dòng)到hive所管理的文件系統(tǒng)的命名空間中
Hive目錄的根路徑是在hive-default.xml文件中的變量
hive.metastore.warehouse.dir
決定的。
我們建議用戶(hù)在使用Hive建表之前就創(chuàng)建好這個(gè)變量指定的目錄。
hive> LOAD DATA LOCAL INPATH './examples/files/kv2.txt' OVERWRITE INTO TABLE invites PARTITION (ds= '2008-08-15' );
hive> LOAD DATA LOCAL INPATH './examples/files/kv3.txt' OVERWRITE INTO TABLE invites PARTITION (ds= '2008-08-08' );


上面這兩個(gè) LOAD 語(yǔ)句,將加載不同的數(shù)據(jù)到invites表的分區(qū)(partition)中。invites表必須事先使用 ds 創(chuàng)建好partition。
hive> LOAD DATA INPATH '/user/myname/kv2.txt' OVERWRITE INTO TABLE invites PARTITION (ds= '2008-08-15' );


上述命令是將HDFS上的文件加載到表中。
注意從HDFS中加載數(shù)據(jù),將會(huì)把數(shù)據(jù)移動(dòng)到目錄下。這幾乎是瞬間完成的。(注:因?yàn)橹皇窃贖DFS元數(shù)據(jù)中修改了文件路徑的指向。)

SQL 查詢(xún)
查詢(xún)示例
下面會(huì)演示一些查詢(xún)范例,在build/dist/examples/queries中可以找到。
更多的,可以在hive源碼中的 ql/src/test/queries/positive中可以找到。

SELECTS 和 FILTERS
hive> SELECT a.foo FROM invites a WHERE a.ds= '2008-08-15' ;


從invite表的字段 'foo' 中選擇所有分區(qū)ds=2008-08-15的結(jié)果。這些結(jié)果并不存儲(chǔ)在任何地方,只在控制臺(tái)中顯示。
注意:下面的示例中,INSERT (到hive表,本地目錄或者HDFS目錄) 是可選命令。
????hive> INSERT OVERWRITE DIRECTORY '/tmp/hdfs_out' SELECT a.* FROM invites a WHERE a.ds= '2008-08-15' ;


從invites表中選擇分區(qū) ds=2008-08-15 的所有行,并放入HDFS目錄中。結(jié)果數(shù)據(jù)在在/tmp/hdfs_out目錄中的文件(多個(gè)文件,文件數(shù)量取決于mapper的數(shù)量)。

存在分區(qū)的表在使用 WHERE 條件過(guò)濾的時(shí)候必須至少指定一個(gè)分區(qū)來(lái)查詢(xún)。
hive> INSERT OVERWRITE LOCAL DIRECTORY '/tmp/local_out' SELECT a.* FROM pokes a;


選擇pokes表中所有的數(shù)據(jù)并放到一個(gè)本地(注:當(dāng)前服務(wù)器)的文件路徑中。
hive> INSERT OVERWRITE TABLE events SELECT a.* FROM profiles a;
hive> INSERT OVERWRITE TABLE events SELECT a.* FROM profiles a WHERE a. key < 100;
hive> INSERT OVERWRITE LOCAL DIRECTORY '/tmp/reg_3' SELECT a.* FROM events a;
hive> INSERT OVERWRITE DIRECTORY '/tmp/reg_4' select a.invites, a.pokes FROM profiles a;
hive> INSERT OVERWRITE DIRECTORY '/tmp/reg_5' SELECT COUNT (*) FROM invites a WHERE a.ds= '2008-08-15' ;
hive> INSERT OVERWRITE DIRECTORY '/tmp/reg_5' SELECT a.foo, a.bar FROM invites a;
hive> INSERT OVERWRITE LOCAL DIRECTORY '/tmp/sum' SELECT SUM (a.pc) FROM pc1 a;


字段計(jì)算和,最大值,最小值同樣可以使用,注意不包含在 HIVE-287 中的Hive版本,你需要使用COUNT(1) 來(lái)代替 COUNT(*)
GROUP BY
hive> FROM invites a INSERT OVERWRITE TABLE events SELECT a.bar, count (*) WHERE a.foo > 0 GROUP BY a.bar;
hive> INSERT OVERWRITE TABLE events SELECT a.bar, count (*) FROM invites a WHERE a.foo > 0 GROUP BY a.bar;


注意不包含在 HIVE-287 中的Hive版本,你需要使用COUNT(1) 來(lái)代替 COUNT(*)
JOIN
hive> FROM pokes t1 JOIN invites t2 ON (t1.bar = t2.bar) INSERT OVERWRITE TABLE events SELECT t1.bar, t1.foo, t2.foo;


MULTITABLE INSERT(多重插入)
????FROM src
????INSERT OVERWRITE TABLE dest1 SELECT src.* WHERE src.key < 100
????INSERT OVERWRITE TABLE dest2 SELECT src.key, src.value WHERE src.key >= 100 and src.key < 200
????INSERT OVERWRITE TABLE dest3 PARTITION(ds='2008-04-08', hr='12') SELECT src.key WHERE src.key >= 200 and src.key < 300
????INSERT OVERWRITE LOCAL DIRECTORY '/tmp/dest4.out' SELECT src.value WHERE src.key >= 300;
STREAMING
????hive> FROM invites a INSERT OVERWRITE TABLE events SELECT TRANSFORM(a.foo, a.bar) AS (oof, rab) USING '/bin/cat' WHERE a.ds > '2008-08-09';

?

在map中使用腳本/bin/cat對(duì)數(shù)據(jù)的流式訪問(wèn)(就像使用hadoop的streaming)
同樣的 - 流式訪問(wèn)也可以使用在reduce階段。(請(qǐng)查看 Hive Tutorial 范例)

簡(jiǎn)單的使用范例
用戶(hù)對(duì)電影的投票統(tǒng)計(jì)
首先,創(chuàng)建一個(gè)使用tab分割的文本文件的表
CREATE TABLE u_data (
????????userid INT ,
????????movieid INT ,
????????rating INT ,
????????unixtime STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;


然后,下載這個(gè)數(shù)據(jù)文件
wget http://www.grouplens.org/system/files/ml-data.tar+0.gz
tar xvzf ml-data.tar+0.gz
將這個(gè)文件加載到剛剛創(chuàng)建的表中:
LOAD DATA LOCAL INPATH 'ml-data/u.data'? OVERWRITE INTO TABLE u_data;


計(jì)算表 u_data 中的總行數(shù):
SELECT COUNT (*) FROM u_data;


注意不包含在 HIVE-287 中的Hive版本,你需要使用COUNT(1) 來(lái)代替 COUNT(*)
現(xiàn)在,我們可以在表 u_data 中做一些復(fù)雜的數(shù)據(jù)分析
創(chuàng)建 weekday_mapper.py:
import sys
import datetime
for line in sys.stdin:
????line = line.strip()
????userid, movieid, rating, unixtime = line.split('\t')
????weekday = datetime.datetime.fromtimestamp(float(unixtime)).isoweekday()
????print '\t'.join([userid, movieid, rating, str(weekday)])

?

使用mapper腳本:
CREATE TABLE u_data_new (
????????userid INT ,
????????movieid INT ,
????????rating INT ,
????????weekday INT )
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t' ;
add FILE weekday_mapper.py;
INSERT OVERWRITE TABLE u_data_new
SELECT
????????TRANSFORM (userid, movieid, rating, unixtime)
????????USING 'python weekday_mapper.py'
???????? AS (userid, movieid, rating, weekday)
FROM u_data;
SELECT weekday, COUNT (*)
FROM u_data_new
GROUP BY weekday;

?

注意 0.5.0 及更早的的Hive版本,你需要使用COUNT(1) 來(lái)代替 COUNT(*)
Apache Web日志數(shù)據(jù)
Apache日志格式是可以自定義的,作為大多數(shù)網(wǎng)管來(lái)說(shuō)都是使用默認(rèn)設(shè)置。
我們可以給默認(rèn)的Apache日志創(chuàng)建一個(gè)如下的表
更多的關(guān)于正則序列化/反序列化(注: 原文!RegexSerDe) 可以在這里看到。
http://issues.apache.org/jira/browse/HIVE-662
add jar ../build/contrib/hive_contrib.jar;
CREATE TABLE apachelog (
????????host STRING,
????????identity STRING,
???????? user STRING,
????????time STRING,
????????request STRING,
????????status STRING,
???????? size STRING,
????????referer STRING,
????????agent STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
????????"input.regex" = "([^]*) ([^]*) ([^]*) (-|\\[^\\]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*)(?: ([^ \"]*|\".*\") ([^ \"]*|\".*\"))?",
????????"output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s"
)
STORED AS TEXTFILE;

?

Hive官方手冊(cè)翻譯(Getting Started) - 實(shí)踐檢驗(yàn)真理 - 51CTO技術(shù)博客


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 日韩免费在线视频观看 | 四虎影视永久在线 | 亚洲毛片| 久久频这里精品99香蕉久网址 | 91国内在线国内在线播放 | 青青热久久国产久精品秒播 | 国产精品主播在线 | 一级a美女毛片 | 成人性色生活片免费网 | 视频一区色眯眯视频在线 | 久久99精品久久只有精品 | 男人午夜 | 一区二区三区无码高清视频 | 欧美一区二区久久精品 | 一级毛片免费高清视频 | 国产一级α片 | 亚洲国产综合自在线另类 | 色综合久久网 | 国产极品福利视频在线观看 | 久久青草免费97线频观 | 亚州视频一区 | 亚洲九九色 | 亚洲三级欧美 | 国产精品爱久久久 | 国产精品欧美韩国日本久久 | 一级午夜免费视频 | 日韩高清性爽一级毛片免费 | 欧美成人二区 | 精品久久久久久影院免费 | 美女一级毛片视频 | 亚欧美视频| 国产综合精品在线 | 青青草国产97免久久费观看 | 亚洲欧美卡通成人制服动漫 | 青青国产成人久久91 | 免费深夜福利 | 日本一本一道 | 夜夜操天天干 | 大片刺激免费播放视频 | 亚洲区欧美 | 久久久久成人精品一区二区 |