当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark DataFrame.to_csv用法及代码示例


本文简要介绍 pyspark.pandas.DataFrame.to_csv 的用法。

用法:

DataFrame.to_csv(path: Optional[str] = None, sep: str = ',', na_rep: str = '', columns: Optional[List[Union[Any, Tuple[Any, …]]]] = None, header: bool = True, quotechar: str = '"', date_format: Optional[str] = None, escapechar: Optional[str] = None, num_files: Optional[int] = None, mode: str = 'w', partition_cols: Union[str, List[str], None] = None, index_col: Union[str, List[str], None] = None, **options: Any) → Optional[str]

将对象写入逗号分隔值 (csv) 文件。

注意

pandas-on-Spark to_csv 将文件写入路径或 URI。与 pandas 不同,pandas-on-Spark 尊重 HDFS 的属性,例如“fs.default.name”。

注意

pandas-on-Spark 将 CSV 文件写入目录 path ,并在指定 path 时在目录中写入多个 part-… 文件。此行为继承自 Apache Spark。文件的数量可以通过 num_files 来控制。

参数

pathstr,默认无

文件路径。如果提供 None ,则结果作为字符串返回。

sepstr,默认“,”

长度为 1 的字符串。输出文件的字段分隔符。

na_repstr,默认“”

缺少数据表示。

columns顺序,可选

要写的列。

headerbool 或 str 列表,默认 True

写出列名。如果给出字符串列表,则假定它是列名的别名。

quotecharstr,默认“”

长度为 1 的字符串。用于引用字段的字符。

date_formatstr,默认无

日期时间对象的格式字符串。

escapecharstr,默认无

长度为 1 的字符串。用于在适当时转义 sepquotechar 的字符。

num_filespath 目录中要写入的文件数

这是一条路径。

modestr

Python写模式,默认‘w’。

注意

mode 可以接受用于 Spark 写入模式的字符串。如‘append’, ‘overwrite’, ‘ignore’, ‘error’, ‘errorifexists’。

  • ‘append’(相当于‘a’):将新数据追加到现有数据。

  • ‘overwrite’(相当于‘w’):覆盖现有数据。

  • ‘ignore’:如果数据已存在,则静默忽略此操作。

  • ‘error’ 或 ‘errorifexists’:如果数据已存在,则抛出异常。

partition_colsstr 或 str 列表,可选,默认无

分区列的名称

index_col: str or list of str, optional, default: None

在 Spark 中用于表示 pandas-on-Spark 的索引的列名。 pandas-on-Spark 中的索引名称被忽略。默认情况下,索引总是丢失。

options: keyword arguments for additional options specific to PySpark.

这个 kwargs 特定于 PySpark 的 CSV 选项来传递。检查 PySpark 的 API 文档中有关 spark.write.csv(...) 的选项。它具有更高的优先级并覆盖所有其他选项。此参数仅在指定path 时有效。

返回

str 或 None

例子

>>> df = ps.DataFrame(dict(
...    date=list(pd.date_range('2012-1-1 12:00:00', periods=3, freq='M')),
...    country=['KR', 'US', 'JP'],
...    code=[1, 2 ,3]), columns=['date', 'country', 'code'])
>>> df.sort_values(by="date")  
                   date country  code
... 2012-01-31 12:00:00      KR     1
... 2012-02-29 12:00:00      US     2
... 2012-03-31 12:00:00      JP     3
>>> print(df.to_csv())  
date,country,code
2012-01-31 12:00:00,KR,1
2012-02-29 12:00:00,US,2
2012-03-31 12:00:00,JP,3
>>> df.cummax().to_csv(path=r'%s/to_csv/foo.csv' % path, num_files=1)
>>> ps.read_csv(
...    path=r'%s/to_csv/foo.csv' % path
... ).sort_values(by="date")  
                   date country  code
... 2012-01-31 12:00:00      KR     1
... 2012-02-29 12:00:00      US     2
... 2012-03-31 12:00:00      US     3

在系列的情况下,

>>> print(df.date.to_csv())  
date
2012-01-31 12:00:00
2012-02-29 12:00:00
2012-03-31 12:00:00
>>> df.date.to_csv(path=r'%s/to_csv/foo.csv' % path, num_files=1)
>>> ps.read_csv(
...     path=r'%s/to_csv/foo.csv' % path
... ).sort_values(by="date")  
                   date
... 2012-01-31 12:00:00
... 2012-02-29 12:00:00
... 2012-03-31 12:00:00

您可以在往返中保留索引,如下所示。

>>> df.set_index("country", append=True, inplace=True)
>>> df.date.to_csv(
...     path=r'%s/to_csv/bar.csv' % path,
...     num_files=1,
...     index_col=["index1", "index2"])
>>> ps.read_csv(
...     path=r'%s/to_csv/bar.csv' % path, index_col=["index1", "index2"]
... ).sort_values(by="date")  
                             date
index1 index2
...    ...    2012-01-31 12:00:00
...    ...    2012-02-29 12:00:00
...    ...    2012-03-31 12:00:00

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.pandas.DataFrame.to_csv。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。