开始
加载和管理数据
处理数据
政府
引用和资源
2023年8月2日更新
给我们反馈
from_csv
适用于:砖的SQL砖运行时
返回一个结构体的价值csvStr和模式。
csvStr
模式
from_csv(csvStr,模式(,选项])
csvStr:一个字符串表达式指定行CSV数据。
模式:一个字符串或调用schema_of_csv函数。
选项:一个可选的地图<字符串,字符串>文字指定指令。
选项
一个结构体字段名称和类型匹配的模式定义。
csvStr应该形成良好的对吗模式和选项。模式必须定义为逗号分隔列名称和数据类型对用于例如创建表。
创建表
选项如果提供,可以有下列:
9月(默认,):设置一个为每个字段和值分隔符。该分离器可以一个或多个字符。
9月
,
编码(默认utf - 8):解码的CSV文件指定的编码类型。
编码
报价(默认”):设置一个字符用于转义引用值的分隔符可以是值。如果你想关闭报价,您需要设置不是零而是一个空字符串。这种行为是不同的com.databricks.spark.csv。
报价
”
com.databricks.spark.csv
逃避(默认\):设置一个字符用于转义引号里面已经引用价值。
逃避
\
charToEscapeQuoteEscaping(默认逃避或\ 0):设置一个字符用于转义引用字符的转义。默认值是转义字符逃避和报价角色是不同的,\ 0否则。
charToEscapeQuoteEscaping
\ 0
评论(默认空字符串):设置一个字符用于跳过这个角色开始。默认情况下,它是禁用的。
评论
头(默认假):使用第一行作为名称的列。
假
enforceSchema(默认真正的):如果它被设置为true,强行指定或推断模式应用于数据源文件,和标题在CSV文件中被忽略。如果选项设置为false,验证了模式对所有标题在CSV文件中头选项设置为true。字段名称的模式和列名CSV头检查自己的立场考虑spark.sql.caseSensitive。尽管默认值是正确的,建议禁用enforceSchema选项来避免不正确的结果。
enforceSchema
真正的
spark.sql.caseSensitive
inferSchema(默认假):输入模式自动从数据推断。它需要一个额外的数据传递。
inferSchema
samplingRatio1.0(默认):定义部分的行用于模式推断。
samplingRatio
ignoreLeadingWhiteSpace(默认假):一个标志指示是否领先的空白值读取应该跳过。
ignoreLeadingWhiteSpace
ignoreTrailingWhiteSpace(默认假):一个标志指示是否尾随的空格从值读取应该跳过。
ignoreTrailingWhiteSpace
nullValue(默认空字符串):设置一个null值的字符串表示。
nullValue
emptyValue(默认空字符串):设置一个空的字符串表示的值。
emptyValue
nanValue(默认南):集non-number值的字符串表示。
nanValue
南
positiveInf(默认正):集正无穷值的字符串表示。
positiveInf
正
negativeInf(默认负无穷):设置一个负无穷值的字符串表示。
negativeInf
负无穷)
dateFormat(默认yyyy-MM-dd):集表示日期格式的字符串。自定义日期格式按照格式Datetime模式。这适用于日期类型。
dateFormat
yyyy-MM-dd
timestampFormat(默认yyyy-MM-dd 'HH: mm: ss [.SSS] [XXX]):设置显示时间戳格式的字符串。自定义日期格式按照格式Datetime模式。这适用于时间戳的类型。
timestampFormat
yyyy-MM-dd 'HH: mm: ss [.SSS] [XXX]
maxColumns(默认20480年):定义了一个硬限制多少列记录。
maxColumns
20480年
maxCharsPerColumn(默认为1):定义的最大字符数允许任何指定的值被阅读。默认情况下,它是1意味着无限的长度
maxCharsPerColumn
unescapedQuoteHandling(默认STOP_AT_DELIMITER):定义CSV解析器如何处理值和保有的报价。
unescapedQuoteHandling
STOP_AT_DELIMITER
STOP_AT_CLOSING_QUOTE:如果保有的报价在输入,积累援引性格和价值进行解析的引用值,直到找到关闭报价。
STOP_AT_CLOSING_QUOTE
BACK_TO_DELIMITER:如果保有的报价在输入,考虑到价值作为非上市价值。这将使当前的解析值的解析器积累所有字符,直到找到分隔符。如果没有找到分隔符的值,解析器将继续积累从输入直到分隔符或行结束字符。
BACK_TO_DELIMITER
STOP_AT_DELIMITER:如果保有的报价在输入,考虑到价值作为非上市价值。这将使解析器积累直到所有字符分隔符或找到一行结束输入。
STOP_AT_DELIMITER:输入,如果找到保有的报价内容解析指定的值是跳过和价值nullValue产生。
RAISE_ERROR:输入,如果找到保有的报价TextParsingException抛出。
RAISE_ERROR
TextParsingException
模式(默认宽容的):允许一个模式来处理腐败记录在解析。它支持以下不区分大小写的方式。火花试图解析只需要列在CSV列修剪。因此,腐败记录可以根据需要设置不同的字段。这种行为可以被控制的spark.sql.csv.parser.columnPruning.enabled(默认启用)。
宽容的
spark.sql.csv.parser.columnPruning.enabled
宽容的开会时:一个损坏的记录,把畸形的字符串字段进行配置columnNameOfCorruptRecord,畸形的字段设置为null。继续腐败记录,一个名叫columnNameOfCorruptRecord的用户可以设置一个字符串类型字段在一个用户定义的模式。如果一个模式没有字段,它滴腐败在解析记录。记录用更少或更多的令牌比模式不是一个损坏的记录到CSV。会议记录令牌少于模式的长度,集零额外的字段。当记录比模式的长度标记,它滴额外的令牌。
columnNameOfCorruptRecord
FAILFAST:开会时将抛出一个异常损坏的记录。
FAILFAST
columnNameOfCorruptRecord(缺省为指定的值spark.sql.columnNameOfCorruptRecord):允许重命名新领域有畸形的字符串创建的宽容的模式。这将覆盖spark.sql.columnNameOfCorruptRecord。
spark.sql.columnNameOfCorruptRecord
多行(默认假):解析一个记录,这可能跨越多个行。
多行
语言环境(默认en - us):设置一个区域作为语言标签在IETF BCP 47格式。例如,这是使用在解析日期和时间戳。
语言环境
en - us
lineSep(默认覆盖所有r \,\ r \ n,\ n):定义行分隔符应该用于解析。最大长度是1字符。
lineSep
r \
\ r \ n
\ n
pathGlobFilter:一个可选的水珠模式只包含文件路径匹配模式。语法如下org.apache.hadoop.fs.GlobFilter。它不改变分区发现的行为。
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就是}
from_json函数
schema_of_json函数
schema_of_csv函数
to_json函数
to_csv函数