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

Tim*_*m.X 5 python python-3.x apache-spark

当我阅读其他人的python代码(如)时spark.read.option("mergeSchema", "true"),似乎编码人员已经知道要使用什么参数。但是对于初学者来说,是否有地方可以查找这些可用参数?我查找apche文档,并显示未记录的参数。

谢谢。

csj*_*s24 5

令人讨厌的是,该option方法的文档在该json方法的文档中。该方法的文档说选项如下(键 - 值 - 描述):

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

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

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

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

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

  • allowNumericLeadingZeros -- true/false (default false) -- 允许数字前导零(例如 00012)

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

  • allowUnquotedControlChars -- true/false (default false) -- 允许 JSON 字符串包含或不包含未引用的控制字符(值小于 32 的 ASCII 字符,包括制表符和换行符)。

  • mode -- PERMISSIVE/DROPMALFORMED/FAILFAST (default PERMISSIVE) -- 允许在解析过程中处理损坏记录的模式。

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

  • 谢谢你!我不会想到查看`.json()`。我希望有一些常数...... (3认同)

小智 4

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

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

 spark.conf.set("spark.sql.parquet.mergeSchema", "true")
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回答。例如,我的问题是 def option(key: String, value: Double): DataFrameReader Permalink 为基础数据源添加输入选项。从 2.0.0 开始,如何找到所有可用的键值对。 (8认同)