配置Spark后续操作,连接Hive

前文:Ubuntu14从安装虚拟机开始配置Spark环境

一、Hadoop分布式实例

在hdfs上创建hadoop用户,及创建input文件夹

./bin/hdfs dfs -mkdir -p /user/hadoop
./bin/hdfs dfs -mkdir ./input

在这里插入图片描述
上传文件并查看

./bin/hdfs dfs -put /home/hadoop/下载/*.txt input
./bin/hdfs dfs -ls

在这里插入图片描述
三表合一

# 读取文件
var a = sc.textFile("input/result_bigdata.txt").map{x=>val line=x.split("\t");(line(0),line(1),line(2).toInt)}
var b = sc.textFile("input/result_math.txt").map{x=>val line=x.split("\t");(line(0),line(1),line(2).toInt)}

# 联合a、b两表
var a_b  = a union b

# 降阶操作
var total_score = a_b.map(x=>(x._1,x._3)).reduceByKey((x,y)=>x+y)

# 求平均数
var average  = total_score.map{x=>(x._1,x._2/2)}

# 数学成绩
var math_score = b.map{x=>(x._1,x._3)}

# bigdata成绩
var bigdata_score = a.map{x=>(x._1,x._3)}

# 读取学生表
var c = sc.textFile("input/student.txt").map{x=>val line=x.split("\t");(line(0),line(1))}

# 联合数学成绩和bigdata成绩
var score1 = math_score.join(bigdata_score)

# 联合平均分和总分
var score2 = total_score.join(average)

# 联合前面两表
var score = score1.join(score2)

# 将学生表和最终成绩表联合
var flag  = c.join(score)

# 看一下效果
flag.collect
var a = sc.textFile("input/result_bigdata.txt").map{x=>val line=x.split("\t");(line(0),line(1),line(2).toInt)}
var b = sc.textFile("input/result_math.txt").map{x=>val line=x.split("\t");(line(0),line(1),line(2).toInt)}
var a_b  = a union b
var total_score = a_b.map(x=>(x._1,x._3)).reduceByKey((x,y)=>x+y)
var average  = total_score.map{x=>(x._1,x._2/2)}
var math_score = b.map{x=>(x._1,x._3)}
var bigdata_score = a.map{x=>(x._1,x._3)}
var c = sc.textFile("input/student.txt").map{x=>val line=x.split("\t");(line(0),line(1))}
var score1 = math_score.join(bigdata_score)
var score2 = total_score.join(average)
var score = score1.join(score2)
var flag  = c.join(score)
flag.collect

二、spark支持hive的版本

问题:
在这里插入图片描述
解决方案:
资料:Spark入门:连接Hive读写数据(DataFrame)

安装编译后的spark版本

sudo tar -zxf ~/下载/spark-2.1.0-bin-h27hive.tgz -C /usr/local

在这里插入图片描述
修改文件名

sudo mv /usr/local/spark-2.1.0-bin-h27hive /usr/local/sparkwithhive

在这里插入图片描述
修改文件权限

sudo chown -R hadoop:hado
### PyCharm 中配置 Spark连接 Hive 的方法 #### 准备工作 为了使 PyCharm 能够成功运行 Spark连接Hive 数据库,需先安装并设置好 Java、Scala 和 Hadoop 环境变量。接着下载对应版本的 Apache Spark 安装包,并解压至指定目录。 #### 创建 Python 解释器环境 打开 PyCharm 后,在项目设置中的 `Project Interpreter` 页面创建一个新的虚拟环境用于隔离依赖项。确保此环境中已通过 pip 工具安装了 pyspark 库[^3]。 #### 设置 SPARK_HOME 变量 进入 PyCharm 的 `Run/Debug Configurations` 对话框内添加或编辑现有的 Python 运行配置文件。在此处定义名为 `SPARK_HOME` 的环境变量指向本地计算机上存储有 Spark 发行版的位置;同时也要设定 PYTHONPATH 包含 `$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-<version>-src.zip` 来加载必要的类路径资源。 #### 初始化 SparkSession 实例 编写一段简单的测试脚本如下所示: ```python from pyspark.sql import SparkSession if __name__ == "__main__": spark = ( SparkSession.builder.appName("TestApp") .config("spark.jars.packages", "org.apache.hive:hive-jdbc:<hive_version>") .enableHiveSupport() .getOrCreate() ) result = spark.sql("SHOW DATABASES").collect() for row in result: print(row) spark.stop() ``` 这段代码构建了一个带有 Hive 支持功能的新会话对象实例化过程里指定了应用程序名称以及额外参数来引入所需的 JDBC 驱动程序以便于后续操作能够顺利执行 SQL 查询语句获取表结构信息等[^2]。 #### 添加 Hive Site XML 文件 为了让上述示例正常运作还需要把集群内部署好的 hive-site.xml 复制粘贴进 `${SPARK_HOME}/conf/` 下面覆盖默认模板从而让客户端知道怎样去找到远端服务节点地址和其他重要属性值[^4]。 完成以上步骤之后就可以利用 PyCharm 开发平台轻松调试基于 Spark 技术栈的应用程序并且无缝对接企业级数据仓库解决方案啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值