spark.read.option() 中的可用选项

问题描述 投票:0回答:6

当我阅读其他人的Python代码时,

spark.read.option("mergeSchema", "true")
,似乎编码员已经知道要使用哪些参数。但对于初学者来说,有没有地方可以查找这些可用参数?我查找了 apche 文档,它显示参数未记录。

谢谢。

python python-3.x apache-spark
6个回答
18
投票

令人烦恼的是,

option
方法的文档位于
json
方法的文档中。该方法的文档说选项如下(键 - 值 - 描述):

  • primitivesAsString -- true/false (默认 false) -- 将所有原始值推断为字符串类型

  • prefersDecimal -- true/false (默认 false) -- 将所有浮点值推断为十进制类型。如果这些值不适合十进制,则会将它们推断为双精度数。

  • allowComments -- true/false (默认 false) -- 忽略 JSON 记录中的 Java/C++ 风格注释

  • allowUnquotedFieldNames -- true/false (默认 false) -- 允许不带引号的 JSON 字段名称

  • allowSingleQuotes -- true/false (默认 true) -- 除了双引号之外还允许单引号

  • allowNumericLeadingZeros -- true/false (默认 false) -- 允许在数字中使用前导零(例如 00012)

  • allowBackslashEscapingAnyCharacter -- true/false (默认 false) -- 允许使用反斜杠引用机制接受所有字符的引用

  • allowUnquotedControlChars -- true/false (默认 false) -- 是否允许 JSON 字符串包含不带引号的控制字符(值小于 32 的 ASCII 字符,包括制表符和换行符)。

  • 模式——PERMISSIVE/DROPMALFORMED/FAILFAST(默认PERMISSIVE)——允许在解析期间处理损坏记录的模式。

    • PERMISSIVE :当遇到损坏的记录时,将格式错误的记录放入 字符串到由columnNameOfCorruptRecord配置的字段中,并设置 其他字段为空。要保留损坏的记录,用户可以设置 用户定义的名为columnNameOfCorruptRecord的字符串类型字段 架构。如果模式没有该字段,它将删除损坏的记录 在解析过程中。当推断模式时,它隐式添加一个 输出模式中的columnNameOfCorruptRecord字段。
    • DROPMALFORMED:忽略整个损坏的记录。
    • FAILFAST:遇到损坏的记录时抛出异常。

4
投票

对于内置格式,官方文档中列出了所有选项。每种格式都有自己的一组选项,因此您必须参考您使用的选项。

但是,合并模式不是通过选项执行的,而是使用会话属性执行的

 spark.conf.set("spark.sql.parquet.mergeSchema", "true")

4
投票

你可以从这里到达

https://spark.apache.org/docs/2.0.2/api/java/org/apache/spark/sql/DataFrameReader.html

更改突出显示的部分以获得您正在寻找的版本。


1
投票

您可以在这里找到它们。查找“数据源选项”部分。

https://spark.apache.org/docs/latest/sql-data-sources-parquet.html#data-source-option

每种文件类型都有支持文档。


0
投票

您可以在 csv 类的

org.apache.spark.sql.DataFrameReader
方法的
Spark API 文档
中找到更多选项。如上所示,选项取决于要读取的输入格式。


0
投票

这可以在编程指南下找到,而不是 API 参考。

它位于 SQL-Guide -> Data Sources 下

https://spark.apache.org/docs/latest/sql-data-sources.html

https://spark.apache.org/docs/latest/sql-data-sources-csv.html

© www.soinside.com 2019 - 2024. All rights reserved.