如何将数据从数据框导出到文件数据库

Tom*_*ker 3 apache-spark pyspark databricks

我现在正在做EdX的Spark课程简介.是否有可能在我的计算机上保存Databricks的数据帧.

我问这个问题,因为这个课程提供了Databricks笔记本,在课程结束后可能无法使用.

在笔记本中使用命令导入数据:

log_file_path ='dbfs:/'+ os.path.join('databricks-datasets','cs100','lab2','data-001','apache.access.log.PROJECT')

我找到了这个解决方案,但它不起作用:

df.select( '年', '模式').write.format( 'com.databricks.spark.csv').保存( 'newcars.csv')

MrC*_*ine 11

Databricks运行云VM,并且不知道本地计算机的位置.如果要保存DataFrame的CSV结果,可以运行,display(df)并且可以选择下载结果.

在此输入图像描述

  • 感谢您分享克里斯汀先生。我尝试了很多编码解决方案来下载我的 df。这是唯一真正对我有用的事情。但看起来您只能看到并下载 1000 行。如何下载所有行? (2认同)
  • @ASH 点击下载完整结果,然后命令将重新运行,执行完成后您可以下载它。 (2认同)

Tri*_*mus 11

您还可以将其保存到文件存储并通过其句柄下载,例如

df.coalesce(1).write.format("com.databricks.spark.csv").option("header", "true").save("dbfs:/FileStore/df/df.csv")
Run Code Online (Sandbox Code Playgroud)

您可以在 Databricks GUI 中找到句柄,方法是转到 Data > Add Data > DBFS > FileStore > your_subdirectory > part-00000-...

在这种情况下下载(对于 Databricks 西欧实例)

https://westeurope.azuredatabricks.net/files/df/df.csv/part-00000-tid-437462250085757671-965891ca-ac1f-4789-85b0-akq7bc6a8780-3597-1-c000.csv
Run Code Online (Sandbox Code Playgroud)

我还没有测试过它,但我会假设通过@MrChristine 提到的答案下载它时你会有 100 万行的行限制在这里不适用。


yog*_*oga 2

尝试这个。

df.write.format("com.databricks.spark.csv").save("file:///home/yphani/datacsv")
Run Code Online (Sandbox Code Playgroud)

这会将文件保存到 Unix 服务器中。

如果您仅提供 /home/yphani/datacsv 它会在 HDFS 上查找路径。