我确信在某个地方有这方面的文档和/或解决方案很明显,但我在所有搜索中都已经枯竭了。
我有一个数据框,我想将文本文件导出到本地计算机。数据框包含带逗号的字符串,因此只显示 - >下载完整的结果导致导出失真。我想用制表符分隔符导出,但我不知道如何在本地下载它。
我有
match1.write.format("com.databricks.spark.csv")
.option("delimiter", "\t")
.save("file:\\\C:\\Users\\user\\Desktop\\NewsArticle.txt")
但显然这不对。我怀疑它是在别的地方写的(某个地方我不想让它变成......)因为再次运行它会给我一个路径已经存在的错误。那么...... 的正确方法是什么?
答案 0 :(得分:2)
cricket_007指向我的正确路径 - 最终,我需要将文件保存到Databricks的文件存储区(不仅仅是dbfs),然后保存xxxxx.databricks.com/file/[insert文件的结果输出这里的路径]链接。
我的结果代码是:
df.repartition(1) \ #repartitioned to save as one collective file
.write.format('csv') \ #in csv format
.option("header", True) \ #with header
.option("quote", "") \ #get rid of quote escaping
.option(delimiter="\t") \ #delimiter of choice
.save('dbfs:/FileStore/df/') #saved to the FileStore
答案 1 :(得分:0)
检查它是否存在于以下位置。该文件夹中应该有多个零件文件。
import os
print os.getcwd()
如果你想创建一个单独的文件(而不是多个部分文件),那么你可以使用coalesce()
(但请注意,它会强制一个工作人员获取整个数据并按顺序写入这些文件以便#39} ;如果处理大量数据,则不可取)
df.coalesce(1).write.format("csv").\
option("delimiter", "\t").\
save("<file path>")
希望这有帮助!