首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Spark读取Hive中的数据

使用Spark读取Hive中的数据 2018-7-25 作者: 张子阳 分类: 大数据处理 在默认情况下,Hive使用MapReduce来对数据进行操作和运算,即将HQL语句翻译成MapReduce...Hive和Spark的结合使用有两种方式,一种称为Hive on Spark:即将Hive底层的运算引擎由MapReduce切换为Spark,官方文档在这里:Hive on Spark: Getting...还有一种方式,可以称之为Spark on Hive:即使用Hive作为Spark的数据源,用Spark来读取HIVE的表数据(数据仍存储在HDFS上)。...因为Spark是一个更为通用的计算引擎,以后还会有更深度的使用(比如使用Spark streaming来进行实时运算),因此,我选用了Spark on Hive这种解决方案,将Hive仅作为管理结构化数据的工具...通过这里的配置,让Spark与Hive的元数据库建立起联系,Spark就可以获得Hive中有哪些库、表、分区、字段等信息。 配置Hive的元数据,可以参考 配置Hive使用MySql记录元数据。

11.3K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    客快物流大数据项目(七十二):Impala sql 语法

    需要指定表名字并定义其列和每列的数据类型impala支持的数据类型和hive类似,除了sql类型外,还支持java类型基本格式: create table IF NOT EXISTS database_name.table_name...此查询以表的形式返回数据4、describe语句impala中的describe语句用于提供表的描述。 此语句的结果包含有关表的信息,例如列名称及其数据类型。...Describe table_name;此外,还可以使用hive的查询表元数据信息语句。...您也可以使用DROP TABLE命令删除一个完整的表,但它会从数据库中删除完整的表结构,如果您希望存储一些数据,您将需要重新创建此表。...truncate table_name;7、view视图视图仅仅是存储在数据库中具有关联名称的Impala查询语言的语句。 它是以预定义的SQL查询形式的表的组合。视图可以包含表的所有行或选定的行。

    1.3K11

    Hive 基础操作

    背景hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。...hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。...Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。...用户在建表的时候可以自定义 SerDe 或者使用自带的 SerDe。如果没有指定 ROW FORMAT 或者 ROW FORMAT DELIMITED,将会使用自带的 SerDe。...如果数据需要压缩,使用 STORED AS SEQUENCE , STORED AS orc, stored as parquet。有分区的表可以在创建的时候使用 PARTITIONED BY 语句。

    35140

    hive数据定义语言DDL

    Hive DDL操作 DDL基本概念 在Hive中,DATABASE的概念和RDBMS中类似,我们称之为数据库,DATABASE和SCHEMA是可互换的,都可以使用。...describe database 查看数据库结构 显示hive中数据库的名称,注释(如果已经设置),及其在文件系统中的位置等信息 extended关键字用于显示更多的信息,可以将describe...取表中指定的数据创建一个新表,使用AS指定SQL查询语句,查询语句的结果即为新表的结构和内容 ```hive create table if not exists student5 as select...当删除内部表时,会删除数据以及表的元数据(元数据指的是数据的属性信息,而不是具体的数据) 可以使用DESCRIBE FORMATTED table_name 来获取表的元数据信息,从中可以看出表的类型...```hive DESCRIBE FORMATTED table_name; 6. !

    19110

    插入hive表数据sql

    插入Hive表数据SQL在Hive中,我们经常需要将数据插入到表中以便进行查询和分析。本文将介绍如何使用SQL语句向Hive表中插入数据,以及一些常见的插入数据操作。1....介绍Hive表Hive是一个建立在Hadoop之上的数据仓库工具,它提供了类似于SQL的语言HiveQL,使用户能够在Hadoop中进行数据分析和查询。...创建表在Hive中,用户可以使用CREATE TABLE语句来创建表,指定表的基本信息、列定义和存储格式等。...创建表的语法如下:sqlCopy codeCREATE TABLE IF NOT EXISTS table_name ( column1 data_type, column2 data_type...删除数据:使用DELETE语句可以删除表中的数据。管理表:用户可以通过DESCRIBE、SHOW TABLES等命令来查看表的信息或管理表的元数据。

    76900

    【Hive】DDL 与 DML 操作

    SQL 语言分为四大类: 数据查询语言 DQL:基本结构由 SELECT、FROM、WEHERE 子句构成查询块; 数据操纵语言 DML:包括插入、更新、删除; 数据定义语言 DDL:包括创建数据库中的对象...为使用 WITH DEFERRED REBUILD 子句的索引建立索引或重建先前建立的索引。...0.13) 目录可以是一个完整的 URI; 使用 LOCAL,可以将数据写入到本地文件系统的目录上; 写入文件系统的数据被序列化为由 ^A 做列分割符,换行做行分隔符的文本。...Hive 可以从 map-reduce 作业中的并行写入 HDFS 目录; 2.4 Insert values 直接从 SQL 将数据插入到表中。...[WHERE expression] 被引用的列必须是被更新表中的列; 设置的值必须是 Hive Select 子句中支持的表达式。

    1.7K10

    Spark SQL 性能优化再进一步 CBO 基于代价的优化

    所以,最终主要需要解决两个问题 如何获取原始数据集的统计信息 如何根据输入数据集估算特定算子的输出数据集 Statistics 收集 通过如下 SQL 语句,可计算出整个表的记录总数以及总大小 ANALYZE...下例中,通过 SET spark.sql.statistics.histogram.enabled=true; 启用 histogram 后,完整的统计信息如下。...使用 HyperLogLog 的原因有二 使用 HyperLogLog 计算 distinct count 速度快速 HyperLogLog 计算出的 distinct count 可以合并。...在不开启 CBO 中,Spark SQL 通过 spark.sql.autoBroadcastJoinThreshold 判断是否启用 BroadcastJoin。...在下图示例中,Table 1 大小为 1 TB,Table 2 大小为 20 GB,因此在对二者进行 join 时,由于二者都远大于自动 BroatcastJoin 的阈值,因此 Spark SQL 在未开启

    91130

    Spark SQL 性能优化再进一步 CBO 基于代价的优化

    所以,最终主要需要解决两个问题 如何获取原始数据集的统计信息 如何根据输入数据集估算特定算子的输出数据集 Statistics 收集 通过如下 SQL 语句,可计算出整个表的记录总数以及总大小 ANALYZE...下例中,通过 SET spark.sql.statistics.histogram.enabled=true; 启用 histogram 后,完整的统计信息如下。...使用 HyperLogLog 的原因有二 使用 HyperLogLog 计算 distinct count 速度快速 HyperLogLog 计算出的 distinct count 可以合并。...在不开启 CBO 中,Spark SQL 通过 spark.sql.autoBroadcastJoinThreshold 判断是否启用 BroadcastJoin。...在下图示例中,Table 1 大小为 1 TB,Table 2 大小为 20 GB,因此在对二者进行 join 时,由于二者都远大于自动 BroatcastJoin 的阈值,因此 Spark SQL 在未开启

    1.2K30

    Spark工程开发前台技术实现与后台函数调用

    并且Spark SQL提供比较流行的Parquet列式存储格式以及从Hive表中直接读取数据的支持。之后,Spark SQL还增加了对JSON等其他格式的支持。...到了Spark 1.3 版本Spark还可以使用SQL的方式进行DataFrames的操作。...使用的是Apache的一个项目,最早作为Hadoop的一个第三方模块存在,主要功能是在Hadoop(hive)与传统的数据库(mysql、oracle等)间进行数据的传递,可以将一个关系型数据库中的数据导入到...可以使用describe table,从而获取HDFS上对应的表头信息,从而根据业务进行相应的业务逻辑处理。...4、读取HDFS中的表或数据文件: val loadData2 = sqlContext.read.table("asiainfo_") 5、describe函数 val select_table_cache

    1.2K20

    Hive-1.2.1_03_DDL操作 1.1. Create Database1.2. Drop Database1.3. Use Database2.1. Cre

    -1.2.1 之后才有的,这些语句我们在hive-1.2.1中是不能使用的。   ...一个表的创建没有使用EXTERNAL子句,那么被称为managed table(托管表);因为Hive管理它的数据。...数据将存储在用户的scratch目录中,并在会话结束时删除。 如果使用数据库中已经存在的永久表的数据库/表名创建临时表,那么在该会话中对该表的任何引用都将解析为临时表,而不是永久表。...Constraints【约束条件】 Hive包含对未验证的 主键和外键约束的支持。一些SQL工具在出现约束时生成更有效的查询。...多数情况下,这会导致表数据被移动到用户家目录中的.Trash文件夹中; 因此,错误地删除表的用户可以通过使用相同的模式重新创建表,重新创建任何必要的分区,然后使用Hadoop手动将数据移回原位,从而恢复丢失的数据

    76140

    Hive 3的ACID表

    下图描述了Hive表的类型。 ? 以下矩阵包括可以使用Hive创建的表的类型、是否支持ACID属性、所需的存储格式以及关键的SQL操作。...SQL UPDATE或DELETE语句删除某些类型的表中的数据,但是可以对任何类型的表使用DROP PARTITION来删除数据。...如果指定其他任何存储类型,例如text、CSV、AVRO或JSON,则将获得仅插入的ACID表。您不能更新或删除仅插入表中的列。 事务表 事务表是驻留在Hive仓库中的ACID表。...出于多种原因,了解表类型非常重要,例如,了解如何在表中存储数据或从集群中完全删除数据。 1. 在Hive Shell中,获取对该表的扩展描述。...CRUD表中的原子性和隔离 使用以下SQL语句创建完整的CRUD(创建,检索,更新,删除)事务表: CREATE TABLE acidtbl (a INT, b STRING); 运行SHOW CREATE

    3.9K10

    HIVE中的表以及语法

    HIVE中的表以及语法 一、HIVE的表     HIVE使用的功能性的表格分为四种:内部表、外部表、分区表、分桶表。...但是在真实开发中,很可能在hdfs中已经有了数据,希望通过hive直接使用这些数据作为表内容。     此时可以创建hive表关联到该位置,管理其中的数据,这种方式创建出来的表叫做外部表。     ...外部表的特点是,先有数据后有表,hive表关联到该位置管理其中的数据。 2.创建表     创建内部表的语句和sql语句是一样的。     ...在元数据库的SDS里多出了记录,指向了真正的数据存放的位置。     经过检查发现可以使用其中的数据。成功的建立了一张外部表。 3.删除表     删除内外部表的语句和sql的语句是一样的。     ...6.添加上传数据     如果直接在HDFS中HIVE的某个表中上传数据文件,此时手动创建目录是无法被hive使用的,因为元数据库中没有记录该分区。

    2.1K40

    大数据开发:Hive DDL操作入门

    Hive针对于数据管理操作,提供了类SQL语言HQL,在Hadoop生态当中,Hive定位为数据仓库工具,对于数据的各种操作,也就是使用HQL来完成。...今天的大数据开发学习分享,我们就先来讲讲Hive DDL操作入门。 HQL的使用对于本身有SQL基础的人来说,是非常容易上手的。DDL操作,主要包括创建数据库中的对象——表、视图、索引等。...Hive常用DDL操作示例: ※"[ ]"括起来的代表可以写也可以不写的语句。...[COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]...*s'; 12、表中添加一个字段: ALTER TABLE pokes ADD COLUMNS (new_col INT); 13、添加一个字段并为其添加注释: hive> ALTER TABLE invites

    42720

    面试|不可不知的十大Hive调优技巧最佳实践

    Hive是Hadoop在HDFS上的SQL接口,它提供了类似于SQL的接口来查询存储在与Hadoop集成的各种数据库和文件系统中的数据。..._20201116 SELECT * FROM my_table WHERE dt ='2020-11-16'; 在以上查询中,Hive将扫描表2次,为了避免这种情况,我们可以使用下面的方式: FROM...地理位置 比如国家、省份、城市等 业务逻辑 比如部门、销售区域、客户等等 CREATE TABLE table_name ( col1 data_type, col2 data_type...6.向量化 Hive中的向量化查询执行大大减少了典型查询操作(如扫描,过滤器,聚合和连接)的CPU使用率。...收集表的列统计信息: ANALYZE TABLE mytable COMPUTE STATISTICS FOR COLUMNS; 查看my_db数据库中my_table中my_id列的列统计信息: DESCRIBE

    1.4K20
    领券