Spark-SQL之Hive数据源

本文介绍了如何使用Spark SQL的HiveContext与Hive数据源进行交互,包括执行HiveQL语句、返回DataFrame、将DataFrame保存到Hive表以及通过HiveContext.table()创建DataFrame。案例展示了Java和Scala版本的实现,强调了saveAsTable与registerTempTable的区别,前者创建的是物化并持久化的Hive表,而后者仅是临时注册。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hive数据源

Spark SQL支持对Hive中存储的数据进行读写。操作Hive中的数据时,必须创建HiveContext,而不是SQLContext。HiveContext继承自SQLContext,但是增加了在Hive元数据库中查找表,以及用HiveQL语法编写SQL的功能。除了sql()方法,HiveContext还提供了hql()方法,从而用Hive语法来编译sql。

案例中讲解如下四个功能:

第一个功能:用HiveContext的sql()/hql()方法,可以执行hive中执行的HiveQL语句

第二个功能:执行sql还可以返回DataFrame

第三个功能:DataFrame中的数据保存到hive表中(row即可)

第四个功能:HiveContext.table()方法,针对hive表创建DataFrame

实例:

java版本:

package Spark_SQL.Hive_sql;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.hive.HiveContext;

import java.util.List;

/**
 * @Date: 2019/3/15 15:14
 * @Author Angle
 */

/*
* hive数据源
*
* */
publ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值