我正在学习Apache Spark。我正在将CSV数据加载到数据帧中。这可能需要大约5分钟(大量数据)。当我退出spark-shell并重新登录spark-shell时数据消失了。这是正常的行为吗?我在文档中找不到任何相关内容。如何在会话之间保留数据?
答案 0 :(得分:1)
是的,它是预期的,类似于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