0
点赞
收藏
分享

微信扫一扫

spark整合hive

吴wuwu 2022-03-12 阅读 60
spark

spark sql在编译时是不包含hive表,开启hive依赖后,可以访问hive中的表以及UDF函数

通常我们用spark整合hive,说的是spark接管外部已经使用很长时间的hive,里面大大小小的表非常多,为了提高hive的查询效率,会使用spark来代替原来的mapreduce计算引擎,提升计算效率

可以看到就是下面的效果

看看idea中操作hive

首先是依赖

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-hive_2.12</artifactId>
            <version>2.4.5</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
            <version>1.2.1</version>
        </dependency>

 想在本地测试,结果idea上整半天没弄好,还是打包上传到集群运行的

import org.apache.spark.sql.SparkSession

object SparkSqlOnHive {
  def main(args: Array[String]): Unit = {

    val spark = SparkSession
      .builder()
      .appName("SparkSqlOnHive")
      .config("spark.sql.shuffle.partitions", 1)
      //开启hive的元数据支持
      .enableHiveSupport()
      .getOrCreate()

    val df = spark.table("student")

    df.show()

    spark.close()
  }
}
spark-submit --master yarn-client --class com.zh.SparkSqlOnHive Spark-1.0.jar

运行成功 

 

一个spark sql的执行流程大概是下图中的内容通过一系列转换成RDD

 

举报

相关推荐

Spark on Hive

docker hive spark

Hive on spark编译

Hive VS Spark

Hive on Spark 配置

springboot整合hive

0 条评论