我正在尝试比较spark sql和hive上下文,我可以知道有什么不同吗? hivecontext sql使用hive查询,而spark sql使用spark查询吗?
下面是我的代码:
sc = pyspark.SparkContext(conf=conf).getOrCreate()
sqlContext = HiveContext(sc)
sqlContext.sql ('select * from table')而sparksql:
spark.sql('select * from table')我能知道这两个有什么区别吗?
发布于 2018-08-21 10:54:57
SparkSession提供了与底层Spark功能交互的单一入口点,并允许使用DataFrame和Dataset API对Spark进行编程。最重要的是,它限制了开发人员在与Spark交互时必须处理的概念和构造的数量。
SparkSession在没有显式创建SparkConf、SparkContext或SQLContext的情况下,将它们封装在自己内部。
SparkSession已经将SQLContext和HiveContext合并到来自SparkSession 2.0+的一个对象中。
在构建会话对象时,例如:
val spark = SparkSession .builder() .appName("SparkSessionExample").config( "spark.sql.warehouse.dir", warehouseLocation).enableHiveSupport().getOrCreate().enableHiveSupport()提供HiveContext函数。因此您将能够访问配置单元表,因为spark session是使用HiveSupport初始化的。
因此,"sqlContext.sql“和”spark.sql“之间没有区别,但建议使用"spark.sql",因为spark是所有Spark API的单一入口点。
https://stackoverflow.com/questions/51940744
复制相似问题