首页 > 解决方案 > Databricks - 将 Spark 数据帧转换为表:它是同一个数据源吗?

问题描述

您将需要执行相当多的计算才能从源数据帧、Spark 表中进行,不是吗?还是数据框和表都是指向相同数据的指针(即,在创建表时,您不会创建重复数据)?

我想我想弄清楚的是你是否可以从 Spark 数据帧“打开关闭”到一个表,或者这样做是否(非常)计算成本高(毕竟它是大数据......)

标签: apache-sparkapache-spark-sqlsparktable

解决方案


数据框和表在火花中都是不同的。

Dataframe 是一个不可变的分布式数据集合。

表是具有元数据的表,该元数据指向它必须读取数据的物理位置形式。

当您将 spark 数据帧转换为表时,您实际上是在将数据写入磁盘,这可能是 hdfs、S3、Azure 容器等任何东西。一旦您将数据保存为表,您就可以从任何地方读取它,例如从不同的 spark 作业或通过任何其他工作流程。

现在谈论数据框,它仅对您创建该数据框的特定 Spark 会话有效,一旦关闭您的 Spark 会话,您将无法读取该数据框或访问它的值。Dataframe 没有任何特定的内存位置或保存它的物理路径。Dataframe 只是您从任何特定位置读取的数据的表示。


推荐阅读