from_csv函数

适用于:检查标记是的”src=砖的SQL检查标记是的”src=砖运行时

返回一个结构体的价值csvStr模式

语法

from_csv(csvStr,模式(,选项])

参数

  • csvStr:一个字符串表达式指定行CSV数据。

  • 模式:一个字符串或调用schema_of_csv函数

  • 选项:一个可选的地图<字符串,字符串>文字指定指令。

返回

一个结构体字段名称和类型匹配的模式定义。

csvStr应该形成良好的对吗模式选项模式必须定义为逗号分隔列名称和数据类型对用于例如创建

选项如果提供,可以有下列:

  • 9月(默认,):设置一个为每个字段和值分隔符。该分离器可以一个或多个字符。

  • 编码(默认utf - 8):解码的CSV文件指定的编码类型。

  • 报价(默认):设置一个字符用于转义引用值的分隔符可以是值。如果你想关闭报价,您需要设置不是零而是一个空字符串。这种行为是不同的com.databricks.spark.csv

  • 逃避(默认\):设置一个字符用于转义引号里面已经引用价值。

  • charToEscapeQuoteEscaping(默认逃避\ 0):设置一个字符用于转义引用字符的转义。默认值是转义字符逃避报价角色是不同的,\ 0否则。

  • 评论(默认空字符串):设置一个字符用于跳过这个角色开始。默认情况下,它是禁用的。

  • 头(默认):使用第一行作为名称的列。

  • enforceSchema(默认真正的):如果它被设置为true,强行指定或推断模式应用于数据源文件,和标题在CSV文件中被忽略。如果选项设置为false,验证了模式对所有标题在CSV文件中头选项设置为true。字段名称的模式和列名CSV头检查自己的立场考虑spark.sql.caseSensitive。尽管默认值是正确的,建议禁用enforceSchema选项来避免不正确的结果。

  • inferSchema(默认):输入模式自动从数据推断。它需要一个额外的数据传递。

  • samplingRatio1.0(默认):定义部分的行用于模式推断。

  • ignoreLeadingWhiteSpace(默认):一个标志指示是否领先的空白值读取应该跳过。

  • ignoreTrailingWhiteSpace(默认):一个标志指示是否尾随的空格从值读取应该跳过。

  • nullValue(默认空字符串):设置一个null值的字符串表示。

  • emptyValue(默认空字符串):设置一个空的字符串表示的值。

  • nanValue(默认):集non-number值的字符串表示。

  • positiveInf(默认):集正无穷值的字符串表示。

  • negativeInf(默认负无穷):设置一个负无穷值的字符串表示。

  • dateFormat(默认yyyy-MM-dd):集表示日期格式的字符串。自定义日期格式按照格式Datetime模式。这适用于日期类型。

  • timestampFormat(默认yyyy-MM-dd 'HH: mm: ss [.SSS] [XXX]):设置显示时间戳格式的字符串。自定义日期格式按照格式Datetime模式。这适用于时间戳的类型。

  • maxColumns(默认20480年):定义了一个硬限制多少列记录。

  • maxCharsPerColumn(默认为1):定义的最大字符数允许任何指定的值被阅读。默认情况下,它是1意味着无限的长度

  • unescapedQuoteHandling(默认STOP_AT_DELIMITER):定义CSV解析器如何处理值和保有的报价。

    • STOP_AT_CLOSING_QUOTE:如果保有的报价在输入,积累援引性格和价值进行解析的引用值,直到找到关闭报价。

    • BACK_TO_DELIMITER:如果保有的报价在输入,考虑到价值作为非上市价值。这将使当前的解析值的解析器积累所有字符,直到找到分隔符。如果没有找到分隔符的值,解析器将继续积累从输入直到分隔符或行结束字符。

    • STOP_AT_DELIMITER:如果保有的报价在输入,考虑到价值作为非上市价值。这将使解析器积累直到所有字符分隔符或找到一行结束输入。

    • STOP_AT_DELIMITER:输入,如果找到保有的报价内容解析指定的值是跳过和价值nullValue产生。

    • RAISE_ERROR:输入,如果找到保有的报价TextParsingException抛出。

  • 模式(默认宽容的):允许一个模式来处理腐败记录在解析。它支持以下不区分大小写的方式。火花试图解析只需要列在CSV列修剪。因此,腐败记录可以根据需要设置不同的字段。这种行为可以被控制的spark.sql.csv.parser.columnPruning.enabled(默认启用)。

    • 宽容的开会时:一个损坏的记录,把畸形的字符串字段进行配置columnNameOfCorruptRecord,畸形的字段设置为null。继续腐败记录,一个名叫columnNameOfCorruptRecord的用户可以设置一个字符串类型字段在一个用户定义的模式。如果一个模式没有字段,它滴腐败在解析记录。记录用更少或更多的令牌比模式不是一个损坏的记录到CSV。会议记录令牌少于模式的长度,集零额外的字段。当记录比模式的长度标记,它滴额外的令牌。

    • FAILFAST:开会时将抛出一个异常损坏的记录。

  • columnNameOfCorruptRecord(缺省为指定的值spark.sql.columnNameOfCorruptRecord):允许重命名新领域有畸形的字符串创建的宽容的模式。这将覆盖spark.sql.columnNameOfCorruptRecord

  • 多行(默认):解析一个记录,这可能跨越多个行。

  • 语言环境(默认en - us):设置一个区域作为语言标签在IETF BCP 47格式。例如,这是使用在解析日期和时间戳。

  • lineSep(默认覆盖所有r \,\ r \ n,\ n):定义行分隔符应该用于解析。最大长度是1字符。

  • pathGlobFilter:一个可选的水珠模式只包含文件路径匹配模式。语法如下org.apache.hadoop.fs.GlobFilter。它不改变分区发现的行为。

例子

>选择from_csv(“0.8”,“一个INT, b双”);{0.8}>选择from_csv(“26/08/2015”、“时间戳”,地图(' timestampFormat ', ' dd / MM / yyyy '));{“时间”:2015-08-26就是}