当前位置: 首页 > 编程笔记 >

hive 建立表格

潘修文
2023-03-14
本文向大家介绍hive 建立表格,包括了hive 建立表格的使用技巧和注意事项,需要的朋友参考一下

示例

创建具有分区的托管表并存储为序列文件。假定文件中的数据格式Ctrl-A (^A)由换行符进行字段分隔和行分隔。下表是hive.metastore.warehouse.dir在Hive仓库目录中创建的,该目录中为Hive配置文件中的键指定了值hive-site.xml。

CREATE TABLE view
(time INT, 
id BIGINT,
url STRING, 
referrer_url STRING,
add STRING COMMENT 'IP of the User')
COMMENT 'This is view table'
PARTITIONED BY(date STRING, region STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
STORED AS SEQUENCEFILE;

创建具有分区的外部表并存储为序列文件。假定文件中的数据格式ctrl-A由换行符进行字段分隔和行分隔。下表是在指定的位置创建的,当我们已经有数据时,它将很方便。使用外部表的优点之一是我们可以删除表而不删除数据。例如,如果我们创建一个表并意识到该模式是错误的,那么我们可以安全地删除该表并使用新模式进行重新创建,而不必担心这样做的data.Other好处是,如果我们在相同文件上使用其他工具(例如Pig),则可以继续甚至在删除表格后也要使用它们。

CREATE EXTERNAL TABLE view
(time INT, 
id BIGINT,
url STRING, 
referrer_url STRING,
add STRING COMMENT 'IP of the User')
COMMENT 'This is view table'
PARTITIONED BY(date STRING, region STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
STORED AS SEQUENCEFILE
LOCATION '<hdfs_location>';

使用选择查询创建表并填充查询结果,这些语句称为CTAS(Create Table As Select)

CTAS有两部分,SELECT部分可以是HiveQL支持的任何SELECT语句。CTAS的CREATE部分从SELECT部分获取结果模式,并使用其他表属性(例如SerDe和存储格式)创建目标表。

CTAS具有以下限制:

  • 目标表不能是分区表。

  • 目标表不能是外部表。

  • 目标表不能是列表存储表。

CREATE TABLE new_key_value_store
ROW FORMAT SERDE "org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe"
STORED AS RCFile
AS
SELECT * FROM page_view
SORT BY url, add;

创建表如下:

CREATE TABLE像形式可以让您精确地复制现有的表定义(没有复制其数据)。与CTAS相比,下面的语句创建一个新表,其定义在所有细节(表名除外)中均与现有表完全匹配。新表不包含任何行。

CREATE TABLE empty_page_views
LIKE page_views;
           

 类似资料:
  • 本文向大家介绍Lua 建立表格,包括了Lua 建立表格的使用技巧和注意事项,需要的朋友参考一下 示例 创建一个空表很简单: 您还可以创建一个简单数组形式的表: 请记住,默认情况下,表索引从1开始。 也可以创建带有关联元素的表: 上面的用法是下面的语法糖。在这种情况下,键的类型为字符串。添加了以上语法,以使表显示为记录。这种记录样式的语法与使用字符串键索引表的语法并行,如“基本用法”教程中所见。 如

  • Spark SQL也支持从Apache Hive中读出和写入数据。然而,Hive有大量的依赖,所以它不包含在Spark集合中。可以通过-Phive和-Phive-thriftserver参数构建Spark,使其 支持Hive。注意这个重新构建的jar包必须存在于所有的worker节点中,因为它们需要通过Hive的序列化和反序列化库访问存储在Hive中的数据。 当和Hive一起工作是,开发者需要提供

  • 问题内容: 如何安排Jenkins构建,使其只能在每天的特定时间构建? 例如从下午4点开始 我的理解是:0分钟,每个月的星期一至星期日下午4点,但是它每分钟生成一次:( 如有任何建议,我将不胜感激。谢谢! 问题答案: 请阅读其他答案和评论,还有更多的信息和所描述的细微差别(哈希函数?),我在回答此问题时不知道。 根据詹金斯自己对计划任务的帮助(“?”按钮),指定了5个字段: 该字段遵循cron的语

  • 问题内容: 我希望每15分钟定期进行构建。我在网上看过,并且正在使用以下时间表: Jenkins告诉我使用而不是 有人可以告诉我使用代替之间的区别吗? 问题答案: 是。从 _ 构建触发器 → _定期构建 → 计划 → 内联帮助: 为了使定期计划的任务在系统上产生均匀的负载,应尽可能使用符号H(“哈希”)。例如,使用一打日常工作将导致午夜时分大幅飙升。相反,使用仍然会每天执行一次每个作业,但不是同时

  • 一、环境 1、Hadoop 0.20.2 2、Hive 0.5.0 3、JDK 1.6 4、操作系统:Linux m131 2.6.9-78.8AXS2smp #1 SMP Tue Dec 16 02:42:55 EST 2008 x86_64 x86_64 x86_64 GNU/Linux 二、注意事项 1、关于数字类型支持的位数 类型 支持数字位数 tinyint 3位数字 smallint

  • 我想知道是否有可能使用Hive在AWS上有一个指向DynamoDB表的外部表。我没有使用AWS EMR,我使用的是通过Apache Ambari配置的Hadoop Stack。 配置单元版本:配置单元3.1.0.3.1.4.0-315 我所做的是:直接从maven存储库下载了EMR Dynamo-Hive连接器JARS:https://mvnrepository.com/artifact/com.