from_csv
函数
适用于:砖的SQL砖运行时
返回一个结构体的价值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
(默认假
):输入模式自动从数据推断。它需要一个额外的数据传递。samplingRatio
1.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
。它不改变分区发现的行为。