【发布时间】:2022-01-20 04:31:10
【问题描述】:
【问题讨论】:
-
请添加完整的错误信息。
标签: python dataframe apache-spark pyspark apache-spark-sql
【问题讨论】:
标签: python dataframe apache-spark pyspark apache-spark-sql
恐怕它不会那样工作,因为在本地保存数据意味着它必须全部存在于驱动程序中。根据pyspark docs,pyspark.sql.DataFrameWriter.csv 中的path 参数是“任何Hadoop 支持的文件系统中的路径”。
据我所知,有几种选择:
hdfs dfs -mget ...。这将是最直接和首选的方式。df.collect() 将完整的数据帧带到驱动程序,然后将其写入本地FS。这对于大型数据帧可能不可行,因为它可能会导致驱动程序因 OOM 崩溃。df.toLocalIterator()将数据一次一个分区带到驱动程序,然后写入本地FS。这避免/减少了先前选项带来的 OOM 机会。【讨论】: