我想知道如何利用spark SQL利用内存处理。目前支持的内存对象运行spark SQL的方法是什么?
是否可以将f.inputs
语句的目标作为内存中的表?
是否可以在CREATE TABLE AS
子句中引用内存中的对象,例如数据框?
我目前对火花的理解是有限的,所以如果看起来太简单,请原谅我的问题。我将不胜感激任何建议或指导。
答案 0 :(得分:5)
DataFrame是Spark RDDs的SQL包装器。 RDD是不可变的(你不能改变它们),但可以从它转换或创建新的RDD。
您可以将数据框注册为临时表 //将DataFrames注册为表格。
peopleDataFrame.registerTempTable("people")
然后运行select SQLs以获得结果。
//可以使用sqlContext提供的sql方法运行SQL语句。
val results = sqlContext.sql("SELECT name FROM people")
因此,只要数据框支持,任何选择查询的运行都不应成为问题。
但是由于不变性,我怀疑CREATE TABLE AS是否有效并且没有意义,因为我们只能进行READ-ONLY操作。
我希望它有所帮助。
谢谢, 查尔斯。