是否可以在SQL连接中引用数据框?

时间:2016-03-21 05:34:05

标签: apache-spark hive apache-spark-sql spark-dataframe

我想知道如何利用spark SQL利用内存处理。目前支持的内存对象运行spark SQL的方法是什么?

  • 是否可以将f.inputs语句的目标作为内存中的表?

  • 是否可以在CREATE TABLE AS子句中引用内存中的对象,例如数据框?

我目前对火花的理解是有限的,所以如果看起来太简单,请原谅我的问题。我将不胜感激任何建议或指导。

1 个答案:

答案 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操作。

我希望它有所帮助。

谢谢, 查尔斯。