當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。