JSON文件

火花SQL可以自动推断出一个JSON数据集的模式和加载它数据集(行)。这种转换可以使用SparkSession.read.json ()在一个数据集(字符串)或一个JSON文件。

注意,提供的文件json文件不是一个典型的JSON文件。必须包含一个单独的,每一行包含有效的JSON对象。有关更多信息,请参阅JSON文本格式,也称为用JSON

常规多行JSON文件,设置多行选项真正的

/ /原始类型(整数、字符串等)和产品类型(case类)编码器/ /支持通过导入这在创建一个数据集。进口spark.implicits._/ /一个JSON数据集所指出的道路。/ /路径可以是一个文本文件或目录存储文本文件瓦尔路径=“例子/ src / main /资源/ people.json”瓦尔peopleDF=火花json(路径)/ /推断模式可以使用的可视化printSchema()方法peopleDFprintSchema()/ /根/ / |——年龄:长(可空= true)/ / |——名称:字符串(nullable = true)/ /创建一个临时使用DataFrame视图peopleDFcreateOrReplaceTempView(“人”)/ / SQL语句可以通过使用SQL运行方法提供的火花瓦尔teenagerNamesDF=火花sql(“选择的名字从13至19岁”的人)teenagerNamesDF显示()/ / + - - - +/ / | |名称/ / + - - - +/ / |贾斯汀|/ / + - - - +/ /另外,DataFrame可以创建一个JSON数据集表示/ /数据集[String]存储每个字符串一个JSON对象瓦尔otherPeopleDataset=火花createDataset(”““{”名称”:“阴”、“地址”:{“城市”:“哥伦布”,“状态”:“俄亥俄”}}“”“::)瓦尔其他人=火花json(otherPeopleDataset)其他人显示()/ / + - - - - - - - - - - - - - - - + - - - +/ / | | |地址的名字/ / + - - - - - - - - - - - - - - - + - - - +/ / | |阴|俄亥俄州哥伦布市/ / + - - - - - - - - - - - - - - - + - - - +
找到完整的示例代码”/ src / main / scala /org/apache/spark/examples/sql/SQLDataSourceExample例子。scala”引发回购。

火花SQL可以自动推断出一个JSON数据集的模式和加载它数据集<行>。这种转换可以使用SparkSession.read () . json ()在一个数据集<字符串>或一个JSON文件。

注意,提供的文件json文件不是一个典型的JSON文件。必须包含一个单独的,每一行包含有效的JSON对象。有关更多信息,请参阅JSON文本格式,也称为用JSON

常规多行JSON文件,设置多行选项真正的

进口org.apache.spark.sql.Dataset;进口org.apache.spark.sql.Row;/ /一个JSON数据集所指出的道路。/ /路径可以是一个文本文件或目录存储文本文件数据集<>=火花()。json(“例子/ src / main /资源/ people.json”);/ /推断模式可以使用的可视化printSchema()方法printSchema();/ /根/ / |——年龄:长(可空= true)/ / |——名称:字符串(nullable = true)/ /创建一个临时使用DataFrame视图createOrReplaceTempView(“人”);/ / SQL语句可以通过使用SQL运行方法提供的火花数据集<>namesDF=火花sql(“选择的名字从13至19岁”的人);namesDF显示();/ / + - - - +/ / | |名称/ / + - - - +/ / |贾斯汀|/ / + - - - +/ /另外,DataFrame可以创建一个JSON数据集表示/ /数据集<字符串>存储每个字符串一个JSON对象。列表<字符串>jsonData=数组asList(“{\“\”:\“阴\”,\“地址\”:{\“\”:\“哥伦布\”,\“\”,\“俄亥俄州\”}}”);数据集<字符串>anotherPeopleDataset=火花createDataset(jsonData,编码器字符串());数据集<>anotherPeople=火花()。json(anotherPeopleDataset);anotherPeople显示();/ / + - - - - - - - - - - - - - - - + - - - +/ / | | |地址的名字/ / + - - - - - - - - - - - - - - - + - - - +/ / | |阴|俄亥俄州哥伦布市/ / + - - - - - - - - - - - - - - - + - - - +
找到完整的示例代码”/ src / main / java /org/apache/spark/examples/sql/JavaSQLDataSourceExample例子。java”引发回购。

火花SQL可以自动推断出一个JSON数据集的模式和负载DataFrame。这种转换可以使用SparkSession.read.jsonJSON文件。

注意,提供的文件json文件不是一个典型的JSON文件。必须包含一个单独的,每一行包含有效的JSON对象。有关更多信息,请参阅JSON文本格式,也称为用JSON

常规多行JSON文件,设置多行参数真正的

#火花来自前面的示例。sc=火花sparkContext#一个JSON数据集所指出的道路。#的路径可以是一个文本文件或目录存储文本文件路径=“例子/ src / main /资源/ people.json”peopleDF=火花json(路径)#推断模式可以使用的可视化printSchema()方法peopleDFprintSchema()#根# |——年龄:长(可空= true) # |——名称:字符串(nullable = true)#创建一个临时使用DataFrame视图peopleDFcreateOrReplaceTempView(“人”)#可以通过使用SQL方法运行SQL语句提供的火花teenagerNamesDF=火花sql(“选择的名字从13至19岁”的人)teenagerNamesDF显示()# + - - - + # | | # + - - - + #名称|贾斯汀| # + - - - +#或者,DataFrame可以创建一个JSON数据集由#一个抽样(字符串)存储每个字符串一个JSON对象jsonStrings=({”名称”:“阴”、“地址”:{“城市”:“哥伦布”,“状态”:“俄亥俄”}}”]otherPeopleRDD=sc并行化(jsonStrings)其他人=火花json(otherPeopleRDD)其他人显示()# + - - - - - - - - - - - - - - - - - - - - - - - + # | | |地址名称# + - - - - - - - - - - - - - - - - - - + - - - + # |(俄亥俄州哥伦布市)|阴| # + - - - - - - - - - - - - - - - + - - - +
找到完整的示例代码”的例子/ src / main / python / sql /数据源。py”引发回购。

火花SQL可以自动推断出一个JSON数据集的模式和负载DataFrame。使用read.json ()函数,它从JSON文件的目录加载数据文件的每一行是一个JSON对象。

注意,提供的文件json文件不是一个典型的JSON文件。必须包含一个单独的,每一行包含有效的JSON对象。有关更多信息,请参阅JSON文本格式,也称为用JSON

常规多行JSON文件,设置一个命名的参数多行真正的

#一个JSON数据集所指出的道路。#的路径可以是一个文本文件或目录存储文本文件。路径< -“例子/ src / main /资源/ people.json”#创建一个DataFrame从文件路径(s)指出< -read.json(路径)#推断模式可以使用的可视化printSchema()方法。printSchema()# #根# # |——年龄:长(可空= true)# # |——名称:字符串(nullable = true)#注册这个DataFrame表。createOrReplaceTempView(,“人”)#可以通过使用SQL运行SQL语句的方法。青少年< -sql(“从人们选择名字,年龄> = 13和年龄< = 19”)(青少年)# #的名字# # 1贾斯汀
找到完整的示例代码”的例子/ src / main / r / RSparkSQLExample。R”引发回购。
创建临时视图jsonTable使用orgapache火花sqljson选项(路径“例子/ src / main /资源/ people.json”)选择*jsonTable

数据源的选择

数据源的JSON可以通过设置选项:

属性名 默认的 意义 范围
时区 (价值spark.sql.session.timeZone配置) 设置字符串,表明一个时区ID用于格式JSON数据源或分区中的时间戳值。下面的格式时区支持:
  • 提出区域ID:它应该形成“区域/城市”,如“美国/ Los_Angeles”。
  • 区补偿:它应该在格式(+ | -)HH: mm的,例如“喂饲”或“+ 01:00”。还支持“UTC”和“Z”作为“+ 00:00”的别名。
“中科”等短名称不推荐使用,因为他们可以模糊。
读/写
primitivesAsString 推断所有原始值作为字符串类型。
prefersDecimal 推断所有浮点值作为一个十进制类型。如果在十进制值不符合,那么它推断双打。
allowComments 忽略Java / c++风格的评论在JSON记录。
allowUnquotedFieldNames 允许非挂牌JSON字段名称。
allowSingleQuotes 真正的 允许单引号除了双引号。
allowNumericLeadingZeros 允许前导零的数字(如00012)。
allowBackslashEscapingAnyCharacter 允许接受所有使用反斜杠字符引用的引用机制。
模式 宽容的 允许一个模式来处理腐败记录在解析。
  • 宽容的开会时:一个损坏的记录,把畸形的字符串字段进行配置columnNameOfCorruptRecord和畸形的字段设置为。继续腐败记录,一个用户可以设置一个字符串类型字段命名columnNameOfCorruptRecord在一个用户定义的模式。如果一个模式没有字段,它滴腐败在解析记录。推断一个模式时,隐式地添加一个columnNameOfCorruptRecord在一个输出模式。
  • DROPMALFORMED:忽略了整个损坏记录。这种模式不支持JSON内置函数。
  • FAILFAST:开会时将抛出一个异常损坏的记录。
columnNameOfCorruptRecord (价值spark.sql.columnNameOfCorruptRecord配置) 允许重命名新领域有畸形的字符串创建的宽容的模式。这将覆盖spark.sql.columnNameOfCorruptRecord。
dateFormat yyyy-MM-dd 集表示日期格式的字符串。自定义日期格式按照格式datetime模式。这适用于日期类型。 读/写
timestampFormat yyyy-MM-dd 'HH: mm: ss [.SSS] [XXX] 设置显示时间戳格式的字符串。自定义日期格式按照格式datetime模式。这适用于时间戳的类型。 读/写
timestampNTZFormat yyyy-MM-dd 'HH: mm: ss (.SSS) 设置显示没有时区的时间戳格式的字符串。自定义日期格式按照格式Datetime模式。这适用于时间戳没有时区类型,注意zone-offset和时区组件不支持当写作或阅读这些数据类型。 读/写
enableDateTimeParsingFallback 如果时间解析器启用政策遗留设置或如果没有自定义日期或时间戳模式提供了。 允许向后兼容(火花1回落。x和2.0)解析日期和时间戳的行为如果价值观不匹配模式。
多行 解析一个记录,这可能跨越多个行,每个文件。JSON内置函数忽略该选项。
allowUnquotedControlChars JSON字符串可以包含非挂牌控制字符(ASCII字符值小于32,包括选项卡并换行字符)。
编码 时自动检测多行被设置为真正的(阅读),utf - 8(写作) 阅读,可以强制设置一个标准基本或扩展编码的JSON文件。例如UTF-16BE UTF-32LE。对于写作,指定保存的json文件的编码(字符集)。JSON内置函数忽略该选项。 读/写
lineSep r \,\ r \ n,\ n(阅读),\ n(写作) 定义了行分隔符,应该用于解析。JSON内置函数忽略该选项。 读/写
samplingRatio 1.0 定义的输入使用JSON对象模式推断。
dropFieldIfAllNull 是否忽略期间所有空值或空数组的列模式推理。
语言环境 en - us 设置一个区域作为语言标签在IETF BCP 47格式。例如,语言环境而使用解析日期和时间戳。
allowNonNumericNumbers 真正的 JSON解析器可以识别的“不是一个数字”(南)令牌作为合法的浮点数值。
  • +正:+∞的别名+∞
  • :对于负无穷,别名
  • :对于其他not-a-numbers,喜欢除零的结果。
压缩 (没有) 压缩编解码器使用在保存文件。这可以是一个已知的不区分大小写的缩短名称(没有,bzip2 gzip、lz4时髦和缩小)。JSON内置函数忽略该选项。
ignoreNullFields (价值spark.sql.jsonGenerator.ignoreNullFields配置) 是否忽略空字段在生成JSON对象。

其他通用选项中可以找到通用文件源选项

Baidu
map