spark2 sql读取json文件的格式要求

简介: spark2 sql读取json文件的格式要求

spark2 sql读取json文件的格式要求


spark有多个数据源,json是其中一种。那么对于json格式的数据,spark在操作的过程中,可能会遇到哪些问题?

这里首先我们需要对json格式的数据有一定的了解。

json数据有两种格式:

1.对象表示

2.数组表示

二者也有嵌套形式。

比如我们创建一个个人信息的json。

{    "people": [
        {
            "name": "aboutyun",
            "age": "4"
        },
        {
            "name": "baidu",
            "age": "5"
        }
    ]
}

上面是一个比较常见的json。信息我们大致也能看出来:people表示的是表名,后面的内容为表的内容,包含了姓名和年龄。然而我们在使用spark读取的时候却遇到点小问题。上面内容保存为文件people.json,然后上传到hdfs的跟路径,进入spark-shell,读取json文件

val peopleDF=spark.read.json("/people.json")

打印schema

peopleDF.printSchema

b96d614fe3fd2e05586ed0b1e192efa1.jpg

这时候我们看到people并不是表名,而age和name也非列明。我们通过

peopleDF.show

展示列名

00da07c2cbcb6abbca1e7bf52c887736.jpg

也就是说我们如果带有"people"格式的信息,DataFrame就会被认为是列名。个人认为这是spark不太好的地方,应该可以改进。这里也可以自动读取为表名或则忽略,而不是默认为一个字段名称。


既然目前spark是这么做,那么我们该如何做,才能让spark正确的读取?

我们来尝试下面格式的json文件

[
    {
        "name": "aboutyun",
        "age": "4"
    },
    {
        "name": "baidu",
        "age": "5"
    }
]

操作是同样的方式

val peopleDF=spark.read.json("/people.json")


peopleDF.printSchema

cb2413cf98c6a5200ffbdb64b85d084b.jpg

接着我们来打印数据

peopleDF.show

5384a33ab56b58e2098d10016ba61461.jpg

这时候我们看到它能正确的显示数据了。

从上面我们看出spark对于json文件,不是什么格式都是可以的,需要做一定的修改,才能正确读取,相信以后spark会有所改进。


目录
相关文章
|
1月前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
2月前
|
JSON 人工智能 算法
探索大型语言模型LLM推理全阶段的JSON格式输出限制方法
本篇文章详细讨论了如何确保大型语言模型(LLMs)输出结构化的JSON格式,这对于提高数据处理的自动化程度和系统的互操作性至关重要。
|
1月前
|
SQL 分布式计算 Java
Spark SQL向量化执行引擎框架Gluten-Velox在AArch64使能和优化
本文摘自 Arm China的工程师顾煜祺关于“在 Arm 平台上使用 Native 算子库加速 Spark”的分享,主要内容包括以下四个部分: 1.技术背景 2.算子库构成 3.算子操作优化 4.未来工作
|
2月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
3月前
|
JSON JavaScript Java
对比JSON和Hessian2的序列化格式
通过以上对比分析,希望能够帮助开发者在不同场景下选择最适合的序列化格式,提高系统的整体性能和可维护性。
118 3
|
3月前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
3月前
|
JSON 人工智能 算法
探索LLM推理全阶段的JSON格式输出限制方法
文章详细讨论了如何确保大型语言模型(LLMs)输出结构化的JSON格式,这对于提高数据处理的自动化程度和系统的互操作性至关重要。
559 12
|
3月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
3月前
|
JSON Java 数据格式
springboot中表字段映射中设置JSON格式字段映射
springboot中表字段映射中设置JSON格式字段映射
178 1
|
4月前
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?