据我所知,Spark可以使用两种不同语法的SQL。
第一种是使用 .sql()
函数,例如:
DataFrame df = sqlContext.read().parquet("../loc/of/this");
df.registerTempTable("this")
DataFrame people = sqlContext.sql("SELECT * FROM this GROUP BY that")
另一个是:
DataFrame people = sqlContext.read.parquet("../loc/of/this")
people.groupBy("that")
两者有什么区别?是否会对性能产生影响?谢谢!
根据我的经验,这两种方式具有相同的性能,可能是在第一种,Spark引擎必须解析或分析SQL查询字符串,但我认为减少Spark作业不是问题