据我所知,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")
两者有什么区别?是否有性能影响? 谢谢!
答案 0 :(得分:1)
根据我的经验,这两种方式具有相同的性能,可能是第一种,spark引擎必须解析或分析SQL查询字符串,但我认为减少火花作业不是问题