Hive on Spark与SparkSql的区别

£神魔★判官ぃ 2024-02-19 15:17 179阅读 0赞

Hive on Spark与SparkSql的区别

hive on spark大体与SparkSQL结构类似,只是SQL引擎不同,但是计算引擎都是spark!

核心代码

  1. #初始化Spark SQL
  2. #导入Spark SQL
  3. from pyspark.sql import HiveContext,Row
  4. # 当不能引入Hive依赖时
  5. # from pyspark.sql import SQLContext,Row
  6. # 注意,上面那一点才是关键的,他两来自于同一个包,你们区别能有多大
  7. hiveCtx = HiveContext(sc) #创建SQL上下文环境
  8. input = hiveCtx.jsonFile(inputFile) #基本查询示例
  9. input.registerTempTable("tweets") #注册输入的SchemaRDD(SchemaRDD在Spark 1.3版本后已经改为DataFrame)
  10. #依据retweetCount(转发计数)选出推文
  11. topTweets = hiveCtx.sql("SELECT text,retweetCount FROM tweets ORDER BY retweetCount LIMIT 10")

结构上Hive On Spark和SparkSQL都是一个翻译层,把一个SQL翻译成分布式可执行的Spark程序。而且大家的引擎都是spark
Hive和SparkSQL都不负责计算,它们只是告诉Spark,你需要这样算那样算,但是本身并不直接参与计算。
SparkSql官网:https://spark.apache.org/sql/
hive官网:http://hive.apache.org/index.html

面试会经常问的几个问题

1,spark需要hadoop么
可以不需要,只要可以读取到元数据就可以
2,spark能够代替hadoop么
不能,spark是用于计算的,hadoop可以计算和存储
3,spark需要hive么
可以不需要,只要metastore服务就行
4,spark on hive这种说法
这种说法是很不专业的,回答用上面的hive on spark和spark sql来回答

发表评论

表情:
评论列表 (有 0 条评论,179人围观)

还没有评论,来说两句吧...

相关阅读