皮皮学,免费搜题
登录
logo - 刷刷题
搜题
【简答题】
Hive中分区表的使用 创建/root/hive文件夹,在该目录下创建文件file1.txt,内容如下: file1.txt 22:30:20, www.sohu.com 22:32:45, www.sina.com file2.txt 22:33:20, www.alax.com 22:34:45, www.youtube.com file3.txt 23:30:20, www.qq.com 23:32:45, www.360.com file4.txt 23:33:20, www.google.com 23:34:45, www.apache.com file5.txt 23:50:20, www.sky.com 23:52:45, www.hnu.com file6.txt 23:53:20, www.ibm.com 23:54:45, www.apple.com 创建一个分区表,分区的单位时dt和国家名 hive > create table logs(ts bigint ,line string) > partitioned by (dt String,country string) > row format delimited fields terminated by ' , ' ; 接下来我们创建要给分区 hive > load data local inpath '/root/hive/partitions/file1' into table logs > partition (dt = '2001-01-01' ,country = 'GB' ); 上面语句的效果是在hdfs系统上建立了一个层级目录 -logs -dt=2001-01-01 -country=GB 我们继续执行下面语句,先看一下什么效果 hive> load data local inpath '/root/hive/partitions/file2' into table logs > partition (dt='2001-01-01',country='GB'); Loading data to table default.logs partition (dt=2001-01-01, country=GB) OK Time taken: 1.379 seconds hive> load data local inpath '/root/hive/partitions/file3' into table logs > partition (dt='2001-01-01',country='US'); Loading data to table default.logs partition (dt=2001-01-01, country=US) OK Time taken: 1.307 seconds hive> load data local inpath '/root/hive/partitions/file4' into table logs > partition (dt='2001-01-02',country='GB'); Loading data to table default.logs partition (dt=2001-01-02, country=GB) OK Time taken: 1.253 seconds hive> load data local inpath '/root/hive/partitions/file5' into table logs > partition (dt='2001-01-02',country='US'); Loading data to table default.logs partition (dt=2001-01-02, country=US) OK Time taken: 1.07 seconds hive> load data local inpath '/root/hive/partitions/file6' into table logs > partition (dt='2001-01-02',country='US'); Loading data to table default.logs partition (dt=2001-01-02, country=US) OK Time taken: 1.227 seconds 我们到HDFS上查看,发现建立了下面层级目录 /user/hive/warehouse/logs ├ ── dt=2001-01-01/ │ ├ ── country=GB/ │ │ ├ ── file1 │ │ └── file2 │ └── country=US/ │ └── file3 └── dt=2001-01-02/ ├ ── country=GB/ │ └── file4 └── country=US/ ├ ── file5 └── file6 是加上所有files的内容基本上一样,蓝色的^A是系统默认分隔符。八进制是‘\001’. 总结:分区表的意思,其实想明白了就很简单。就是在系统上建立文件夹,把分类数据放在不同文件夹下面,加快查询速度。 关键点1:partitioned by (dt String,country string); 创建表格时,指明了这是一个分区表。将建立双层目录,第一次目录的名字和第二层目录名字规则 PARTITIONED BY 子句中定义列,是表中正式的列,成为分区列。但是数据文件中并没有这些值,仅代表目录。 关键点2: partition (dt='2001-01-01',country='GB'); 上传数据时,把数据分别上传到不同分区中。也就是分别放在不同的子目录下。 理解分区就是文件夹分而治之,查询的时候可以当作列名来显示查询的范围。 查看分区结构 hive> show partitions logs; OK dt=2001-01-01/country=GB dt=2001-01-01/country=US dt=2001-01-02/country=GB dt=2001-01-02/country=US 条件限定了country='GB'目录所以只有file1,2,4的内容输出 hive > select ts,dt,line > from logs > where country = 'GB' ; OK 1 2001 - 01 - 01 Log line 1 2 2001 - 01 - 01 Log line 2 4 2001 - 01 - 02 Log line 4 现在只查看dt=2001-01-02目录下country=US的文件夹下的数据。 hive> select ts,dt,line > from logs > where dt='2001-01-02' > and country='US'; OK 5 2001-01-02 Log line 5 6 2001-01-02 Log line 6
手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
参考答案:
举一反三
【单选题】有关小儿肺的解剖特点哪项是错误的?
A.
肺泡数量少且面积小
B.
血管稀少,间质发育弱
C.
弹力纤维发育较差
D.
肺含血量多而含气量少
E.
感染时易致黏液阻塞
【单选题】女,28岁。遇应激事件后,喜欢用钻牛角尖的方式来处理,这种反应属于
A.
自我防御反应
B.
行为反应
C.
情绪反应
D.
生理反应
E.
认知反应
【单选题】( )不能反映各科目的对应关系,不便于分析和检查经济业务的来龙去脉,不便于查对账目。
A.
记账程序账务处理程序
B.
汇总记账账务处理程序
C.
日记账账务处理程序
D.
科目汇总表账务处理程序
【判断题】可以用铁制容器装盛CuSO 4 溶液。 φ θ ( Cu 2 + / Cu ) = 0. 33 7V φ θ ( Fe 2 + / Fe ) = - 0. 440 V
A.
正确
B.
错误
【单选题】有关小儿肺的解剖特点哪项是错误的
A.
肺泡数量少且肺泡小
B.
血管稀少,间质发育弱
C.
弹力组织发育较差
D.
肺含血量多而含气量少
E.
感染时易致黏液阻塞
【单选题】女,28岁。遇应激事件后,喜欢用钻牛角尖的方式来处理,这种反应属于
A.
心理反应
B.
生理反应
C.
情绪反应
D.
行为反应
E.
防御反应
【多选题】定额按生产因素可分为。
A.
劳动定额
B.
材料消耗定额。
C.
机械使用定额。
【单选题】王国维认为:至南宋以后,词亦替矣。“替”意为_________。
A.
被替换
B.
被取代
C.
衰落
D.
平庸
【单选题】女, 28 岁。遇应激事件后,喜欢用钻牛角尖的方式来处理,这种反应属于
A.
心理反应
B.
行为反应
C.
情绪反应
D.
生理反应
E.
认知反应
【单选题】女, 28 岁。遇应激事件后,喜欢用钻牛角尖的方式来处理,这种反应属于
A.
心理反应
B.
行为反应
C.
意志反应
D.
生理反应
相关题目:
参考解析:
知识点:
题目纠错 0
发布
创建自己的小题库 - 刷刷题