在学习Scala Spark 2的过程中,我发现我们可以使用两种方式在SparkSQL中查询数据:
- spark.sql(SQL_STATEMENT) // variable "spark" is an instance of SparkSession
- DataSet/DataFrame.select/.where/.groupBy....
我的问题是它们之间的差异(功能、性能等)是什么? 我试图在网上或他们的文档中找到答案,但没有成功,所以我想听听您的意见
最佳答案
我认为使用SQL
查询和不使用SQL
查询的查询是等价的。两者都在内部,并且在内部使用相同的引擎。但我更喜欢没有 SQL
查询的用户,这些查询更容易编写并提供一定程度的类型安全。
其中
1. spark.sql(SQL_STATEMENT) // variable "spark" is a SparkSession
2. DataSet/DataFrame.select/.where/.groupBy....
在大多数情况下我会选择数字 2,因为它提供了一些类型安全级别
关于scala - SparkSQL 中使用 SQL 和不使用 SQL 的查询之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44499245/