spark和hive操作

Hive 由 Facebook 实现并开源,是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据映射为一张数据库表,并提供 HQL(Hive SQL)查询功能,底层数据是存储在 HDFS 上。
Hive的本质是将 SQL 语句转换为 MapReduce 任务运行,使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,适用于离线的批量数据计算。

一. hive操作

hive -f filename  # filename中存储要执行的sql
hfs -du -h 表的路径  # 查看表的大小
hls /path/database/table  # 可以查看改table下有哪些分区
hfs -rmr /path/database/table/dt=20200515  # 删除指定分区

二. pyspark

from pyspark import SparkConf, SparkContext
from pyspark.sql import HiveContext

conf = SparkConf().setMaster("local").setAppName("test")
sc = SparkContext(conf = conf)
# sc = SparkContext( 'local', 'test')  

hc = HiveContext(sc)
hc.sql("use my_db")
data = hc.sql(f'select * from my_table')

print(data.count())  # 数据量  
data = data.toPandas()  # 转成pandas格式

spark资料:http://dblab.xmu.edu.cn/blog/1729-2/