Spark SQL

Spark SQL

1、下载匹配版本

Hive 地址下载

https://mirrors.tuna.tsinghua.edu.cn/apache/hive/

spark地址下载

http://spark.apache.org/downloads.html

hadoop下载地址

https://hadoop.apache.org/releases.html

spark需要Scala支持,所以需要配置Scala,这里使用Scala 2.11,因为Spark 2.0 默认使用Scala 2.11

hive 的安装版本与spark的安装版本需要匹配

具体的版本信息可以参考如下页面

这里我们常用的匹配版本是:Spark 2.3 + hive 3.0 + Scala 2.11 + Hadoop 2.7

使用SQL于Spark有两种常见的方式,Hive On Spark和SparkSQL,两种方式类似,只是SQL引擎不同,但是计算引擎都是Spark

2、Spark安装

解压配置环境变量

export SCALA_HOME=/home/XXX/mydata/software/scala-2.11.0
export SPARK_HOME=/home/XXX/mydata/software/spark-2.3.0-bin-hadoop2.7
export PATH=/$PATH:$SCALA_HOME/bin:$SPARK_HOME/bin
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH

执行pyspark可以打开python接口

3、SparkSQL

Spark的SQL的相关介绍可以参考如下页面
技术数据模型–DataFrame,DataFrame是由“命名列”(类似关系表的字段定义)所组织起来的一个分布式数据集合。你可以把它看成是一个关系型数据库的表,可以通过多种来源创建:结构化数据文件,hive的表,外部数据库,或者RDDs。以上内容参考了相关的博客

4、示例程序

from pyspark import SparkContext,SparkConf
import os
from pyspark.sql import SparkSession
from pyspark.sql import Row
spark = SparkSession\
        .builder\
        .appName("PythonWordCount")\
        .getOrCreate()
#默认的分隔符是逗号
lines = spark.read.csv(path='/home/XXX/Spark/Demo', header=True)
#如果分隔符是tab键
#lines = spark.read.option("delimiter", "\t").csv(path='/home/pinyu.su/intent/wechat/sample.txt', header=True)
lines.createOrReplaceTempView("Demo")
lines.show()
#显示部分结果
spark.sql("SELECT id,name FROM bixby WHERE name == \"libai\" ").show()
#将文件输出到本地,结果会输出到res文件夹中
spark.sql("SELECT id,name FROM bixby WHERE name == \"libai\" ").write.format("csv").save("/home/XXX/Spark/res")
print "seccess

执行python的文件命令是

spark-submit Demo.py

输出文件到res目录之后,是多个csv文件,然后需要把这边结果汇总起来

touch total.txt
for file in ./*
do
    if [ "${file##*.}"x = "csv"x ]
    then
        echo $file
        cat $file >> total.txt
    fi
done
echo done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值