spark指定hive字段_Spark (十一) spark使用hive的元数据信息

正文

一,简介

跟hive没太的关系,就是使用了hive的标准(HQL, 元数据库、UDF、序列化、反序列化机制)。Hive On Spark 使用RDD(DataFrame),然后运行在spark 集群上。

二,shell方式配置和使用hive元数据信息

2.1 文件配置

配置和hive的配置一致,所以只需要我们把hive的配置文件hive-site.xml拷贝到一份到spark的conf目录下就可以。

6638f182278aea649b41350c7ee8a51f.png

命令:

cp hive-site.xml /usr/local/hadoop/spark/spark-2.3.3/conf/

2.2 驱动包加载

因为要链接mysql,从mysql中读取元数据,所以需要mysql的驱动包进行加载。

2.3 命令行启动

./spark-sql --master spark://hd1:7077 --driver-class-path /usr/local/hadoop/hive/apache-hive-1.2.1-bin/lib/mysql-connector-java-5.1.39.jar

参数解释:

--driver-class-path mysql驱动包的路径--master 使用spark的链接

三,IDEA编程方式使用hive元数据信息

3.1 添加依赖和配置文件

依赖添加:注意除了hive依赖,mysql的驱动依赖也要添加

全部依赖:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

4.0.0

cn.edu360.sparkLearn

sparkTest

1.0-SNAPSHOT

1.8

1.8

2.11.8

2.3.3

2.8.5

UTF-8

org.scala-lang

scala-library

${scala.version}

org.apache.spark

spark-core_2.11

${spark.version}

mysql

mysql-connector-java

5.1.38

org.apache.spark

spark-sql_2.11

${spark.version}

org.apache.hadoop

hadoop-client

${hadoop.version}

org.apache.spark

spark-hive_2.11

${spark.version}

net.alchim31.maven

scala-maven-plugin

3.2.2

org.apache.maven.plugins

maven-compiler-plugin

3.5.1

net.alchim31.maven

scala-maven-plugin

scala-compile-first

process-resources

add-source

compile

scala-test-compile

process-test-resources

testCompile

org.apache.maven.plugins

maven-compiler-plugin

compile

compile

org.apache.maven.plugins

maven-shade-plugin

2.4.3

package

shade

*:*

META-INF/*.SF

META-INF/*.DSA

META-INF/*.RSA

View Code

c158a706c7029a5c47ca557541033c0e.png

org.apache.spark

spark-hive_2.11

${spark.version}

配置文件添加:

92c9bff2091762094931593fad346bd6.png

将hive-site.xml的配置文件添加到项目中。

3.2 程序示例

packagecn.edu360.spark08importorg.apache.spark.sql.{DataFrame, SparkSession}

object HiveTest {

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

val spark: SparkSession=SparkSession.builder()

.appName("HiveTest")

.master("local[*]")

.enableHiveSupport()

.getOrCreate()

val result: DataFrame= spark.sql("show databases")

result.show()

spark.stop()

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值