我想知道使用SparkSQL利用内存处理的方法。当前支持哪些方法使用内存中对象运行 Spark SQL(如果有)?
-
是否可以将
CREATE TABLE AS
语句的目标设置为内存中的表? -
是否可以在
FROM
子句中引用内存中对象(如数据帧)?
目前对火花的理解是有限的,所以如果它看起来太简单,请原谅我的问题。我将不胜感激任何建议或指导。
DataFrame是Spark RDD的SQL包装器。RDD是不可变的(你不能改变它们),但可以从中转换或创建新的RDD。
可以将数据帧注册为临时表将数据帧注册为表。
peopleDataFrame.registerTempTable("people")
然后运行选择 SQL 以获取结果。
SQL 语句可以使用 sqlContext 提供的 sql 方法运行。
val results = sqlContext.sql("SELECT name FROM people")
因此,只要数据帧支持,运行大多数选择查询应该不是问题。
但是由于不可变性,我怀疑 CREATE TABLE AS 是否有效并且没有意义,因为我们只能执行只读操作。
我希望它有所帮助。
谢谢查尔斯。