什么时候应该在Apache Spark中使用createTempView?

时间:2019-10-09 18:14:19

标签: apache-spark apache-spark-sql

假设我正在使用以下数据加载数据:

df = spark.read("csv").option("header", "true").option("inferSchema", "true").load("path/to/csv")

那我为什么要运行:df.createTempView("temp_df")?如果是因为我需要能够运行sql查询,那么我不能使用:df.selectExpr("sql exp...")吗?

我知道df.createTempView("temp_df")将创建一个表,我可以在Spark会话中对其运行sql表达式。话虽如此,这是否意味着所创建的表分布在工作节点上?

我问的原因是因为我想知道csv文件是否正在加载到驱动程序中,而不是立即加载到工作程序节点中。

第二,我可以在辅助节点上有一个数据框吗?如果是,那么spark.catalog.listTables()会给我有关此数据帧的任何信息吗?

最后,如何检查数据在任何时间存储在哪里?是数据帧还是sql表?

非常感谢您的帮助!

0 个答案:

没有答案