Gau*_*hah 1 scala apache-spark apache-spark-sql
我正在学习大数据处理的火花.人们建议使用HiveContext结束SparkSqlContext.并建议使用dataframes而不是直接使用rdd.
Spark-sql对于查询规划器来说似乎是高度优化的,所以看起来使用spark-sql比通过scala(或python ...)使用Core api(RDD)更好.有什么我想念的吗?
简短的回答:对,大多数用例建议使用spark-sql.
答案越长:
首先,它不是"Scala vs. spark-sql"的问题,而是"Spark Core API(RDDs)与spark-sql"的问题.该语言的选择是正交的这场辩论:有斯卡拉的API(以及Java和Python API)的两个RDDS和火花-SQL,所以你可能会结合使用Scala的火花-SQL,例如:
val sc: SparkContext // An existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val df = sqlContext.read.json("people.json").registerTempTable("t1")
sqlContext.sql("SELECT * FROM t1 WHERE ...")
Run Code Online (Sandbox Code Playgroud)
所以 - 是的,使用SQL编写大部分"繁重工具"是有意义的,但是会有一些Scala(或Java或Python)代码.
现在,至于"RDD与SQL"问题 - 如上所述,通常建议使用SQL,因为它为Spark提供了优化空间,不像RDD操作,开发人员指示Spark确切地做什么以及如何通过对Spark的引擎不透明的转换.
| 归档时间: |
|
| 查看次数: |
1915 次 |
| 最近记录: |