当我退出 spark shell 时,所有数据帧数据都消失了。这是正常的吗?

When I exit the spark shell all the dataframe data is gone. Is this normal ?

我正在学习 Apache Spark。我正在将 CSV 数据加载到数据框中。这可能需要大约 5 分钟(大量数据)。当我退出 spark-shell 并重新登录到 spark-shell 时,数据消失了。这是正常行为吗?我在文档中找不到任何关于此的信息。如何在会话之间保留数据?

是的,与 ipython shell 类似,如果您创建一个数组,一旦您退出 shell,它就不会被存储。要存储它,您可以这样做:

import spark.implicits._
val df = spark.range(10).map(l => l.toInt).toDF() // create a mock data frame
df.write.parquet("outputfile.parquet") // save it to a file, consider s3 with s3://yourbucket/yourfile.parquet if it is too large

重启 shell 后,您可以通过以下方式恢复数据帧:

spark.read.parquet("outputfile.parquet").collect