![](/img/trans.png)
[英]Export a Spark Dataframe (pyspark.pandas.Dataframe) to Excel file from Azure DataBricks
[英]How to fetch all rows data from spark dataframe to a file using pyspark in databricks
我正在尝试将所有行数据从 spark 数据帧中提取到数据块中的文件中。 我能够将 df 数据写入只有很少计数的文件。 假设如果我将 df 中的计数设为 100 ,那么在文件中它的计数为 50 ,因此它正在跳过数据。如何将已完成的数据从数据帧加载到文件中而不跳过数据。 我创建了一个 udf,udf 将打开文件并将数据附加到它。我在 spark sql df 中调用了该 udf。
有人可以帮助我解决这个问题吗?
出于以下几个原因,我建议您不要像现在这样使用 udf:
要将 spark 数据帧写入 databricks 中的文件:使用 Dataframe.write 属性( Databricks 文档)。 有很多选择,所以应该可以做任何你需要的事情( Spark docs (这个是针对 CSV 的))
关于分区的注意事项: Spark 将 DF 的每个分区写入自己的文件中,因此您应该使用合并函数(警告:这对于非常大的数据帧来说非常慢,因为 Spark 必须将整个数据帧放入驱动程序节点的内存中)
关于文件位置的注意事项:您提供的文件路径将在驱动程序节点上,因此除非您打算用另一个脚本读回它,否则您应该以 "/dbfs" 开始您的路径,该路径安装在所有节点的文件上系统。通过这种方式,它保存在 Databricks 文件系统上,可以从您的 databricks 实例中的任何集群访问。 (也可以使用 Databricks CLI 下载。)
完整示例:
df_to_write = my_df.select(<columns you want>)
df_to_write.coalesce(1).write.csv("/dbfs/myFileDownloads/dataframeDownload.csv")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.