假设我正在使用以下数据加载数据:
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表?
非常感谢您的帮助!