我在哪里可以找到spark.read.format(“ csv”)

时间:2018-06-20 17:40:28

标签: apache-spark pyspark

这当然是一个非常愚蠢的问题,但我确实花了一些时间,却找不到。

我正在使用pyspark读取csv文件,由于我的浮动分隔符是“,”,因此会产生错误。

在将其替换为字符串之前,我想验证是否没有选项来指定它(类似.option(“ floatingDecimal”,“,”)),但是我找不到可用的任何完整列表选项。许多教程给出了一些但没有完成的内容。 是否存在? 谢谢

1 个答案:

答案 0 :(得分:2)

In the official documentation of the DataFrameReader.csv

  

您可以设置以下特定于CSV的选项来处理CSV文件:

     
      
  • sep(默认为):将单个字符设置为每个字段和值的分隔符。
  •   
  • 编码(默认为UTF-8):按给定的编码类型对CSV文件进行解码。
  •   
  • quote(默认值“):设置用于转义带引号的值的单个字符,其中分隔符可以是值的一部分。如果要关闭引号,则需要设置的不是空值,而是一个空字符串。格式与com.databricks.spark.csv不同。
  •   
  • 转义(默认值):设置用于在已加引号的值内转义引号的单个字符。
  •   
  • 注释(默认为空字符串):设置用于跳过以该字符开头的行的单个字符。默认情况下,它是禁用的。
  •   
  • 标题(默认为false):使用第一行作为列名。
  •   
  • inferSchema(默认为false):从数据自动推断输入模式。它需要对数据进行一次额外的传递。
  •   
  • ignoreLeadingWhiteSpace(默认为false):定义是否应跳过正在读取的值中的前导空白。
  •   
  • ignoreTrailingWhiteSpace(默认为false):定义是否应跳过正在读取的值的尾随空白。
  •   
  • nullValue(默认为空字符串):设置null值的字符串表示形式。
  •   
  • nanValue(默认为NaN):设置非数字”值的字符串表示形式。
  •   
  • positiveInf(默认Inf):设置正无穷大值的字符串表示形式。
  •   
  • negativeInf(默认为-Inf):设置负无穷大值的字符串表示形式。
  •   
  • dateFormat(默认为null):设置指示日期格式的字符串。自定义日期格式遵循java.text.SimpleDateFormat的格式。这适用于日期类型和时间戳类型。默认情况下,它为null,这意味着尝试通过java.sql.Timestamp.valueOf()和java.sql.Date.valueOf()解析时间和日期。
  •   
  • maxColumns(默认值为20480):定义记录可以具有多少列的硬限制。
  •   
  • maxCharsPerColumn(默认值为1000000):定义了读取任何给定值所允许的最大字符数。
  •   
  • maxMalformedLogPerPartition(默认值为10):设置Spark将为每个分区记录的格式错误的最大行数。超出此数字的格式错误的记录将被忽略。
  •   
  • 模式(默认为PERMISSIVE):允许在解析过程中处理损坏的记录的模式。      
        
    • PERMISSIVE:当遇到损坏的记录时,将其他字段设置为null。用户设置模式后,它将为其他字段设置null。
    •   
    • DROPMALFORMED:忽略整个损坏的记录。
    •   
    • FAILFAST:遇到损坏的记录时引发异常。
    •   
  •