通过StructType对象指定DataFrame的Schema

  • 没有嵌套结构的json
jsonString = [
"""{ "id" : "01001", "city" : "AGAWAM",  "pop" : 15338, "state" : "MA" }""",
"""{ "id" : "01002", "city" : "CUSHMAN", "pop" : 36963, "state" : "MA" }"""
]jsonRDD = sc.parallelize(jsonString)from pyspark.sql.types import *#定义结构类型
#StructType:schema的整体结构,表示JSON的对象结构
#XXXStype:指的是某一列的数据类型
jsonSchema = StructType() \.add("id", StringType(),True) \.add("city", StringType()) \.add("pop" , LongType()) \.add("state",StringType())jsonSchema = StructType() \.add("id", LongType(),True) \.add("city", StringType()) \.add("pop" , DoubleType()) \.add("state",StringType())reader = spark.read.schema(jsonSchema)jsonDF = reader.json(jsonRDD)
jsonDF.printSchema()
jsonDF.show()
  • 带有嵌套结构的json
from pyspark.sql.types import *
jsonSchema = StructType([StructField("id", StringType(), True),StructField("city", StringType(), True),StructField("loc" , ArrayType(DoubleType())),StructField("pop", LongType(), True),StructField("state", StringType(), True)
])reader = spark.read.schema(jsonSchema)
jsonDF = reader.json('data/nest.json')
jsonDF.printSchema()
jsonDF.show(2)
jsonDF.filter(jsonDF.pop>4000).show(10)

pyspark指定schema相关推荐

  1. Spark-sql:以编程方式执行Spark SQL查询(通过反射的方式推断出Schema,通过StrutType直接指定Schema)

    1.编写Spark SQL查询语句 在这之前创建Maven项目.创建的过程如:http://blog.csdn.net/tototuzuoquan/article/details/74571374 在 ...

  2. Mybatis链接PostgreSQL指定schema

    1. 问题背景 分布式的项目,需求使用同一个数据库,根据schema的不同,用于区分不同的微服务数据. schema,就是PG数据库下面的不同模式:任何一个PG数据库,创建后,都会有一个默认的模式:p ...

  3. Pyspark学习笔记小总

    pyspark官方文档: https://spark.apache.org/docs/latest/api/python/index.html pyspark案例教程: https://sparkby ...

  4. 【Pyspark教程】SQL、MLlib、Core等模块基础使用

    文章目录 零.Spark基本原理 0.1 pyspark.sql 核心类 0.2 spark的基本概念 0.3 spark部署方式 0.4 RDD数据结构 (1)创建RDD的2种方式 (2)RDD操作 ...

  5. pyspark笔记(RDD,DataFrame和Spark SQL)

    https://github.com/QInzhengk/Math-Model-and-Machine-Learning PySpark RDD和DataFrame 1.SparkSession 介绍 ...

  6. pyspark操作 rdd dataframe,pyspark.sql.functions详解 行列变换

    官网文档可以参考:https://spark.apache.org/docs/latest/api/python/index.html dataframe读写 生成以逗号分隔的数据 stringCSV ...

  7. PostgreSQL_通过schema控制用户权限

    背景环境 schema的特点 schema概念像命名空间 schema下不能再有schema嵌套 各个对象比如表,函数等存放在各个schema下 同一个schema下不能有重复的对象名字,但在不同sc ...

  8. Access导入文本文件的Schema.ini文件格式

    Schema.ini格式如下(参考:MSDN主题 Schema.ini File): Schema.ini用于提供文本数据中的记录规格信息.每个Schema.ini的条目用于指明表的5个特征之一: 文 ...

  9. EFCore动态切换Schema

    最近做个分库分表项目,用到schema的切换感觉还是有些坑的,在此分享下. 先简要说下我们的分库分表 分库分表规则 我定的规则是,订单号(数字)除以16,得出的结果为这个订单所在的数据库,然后他的余数 ...

最新文章

  1. Oh My Zsh终端工具
  2. python3.5全局解释器锁GIL-实现原理浅析
  3. java 反编译 手游_Java反编译器(DJ Java Decompiler)
  4. 渣渣菜鸡的 ElasticSearch 源码解析 —— 启动流程(上)
  5. Django从理论到实战(part31)--Django数据库查询操作
  6. android studio占内存大小,极大精简android studio在C盘的内存
  7. Maven学习总结(53)——利用Maven插件构建镜像进行持续交付中的版本号管理
  8. Spring随笔(04)
  9. Jquery.EasyUI datebox控件
  10. Angular 学习笔记——$interpolateProvide
  11. 数据结构面试、数据结构考研复试——常见问题以及回答
  12. ABAQUS中的非线性分析
  13. mac版百度网盘客户端
  14. vue-video-player,切换页面时控制台报错:TypeError: this.el_.vjs_getProperty is not a function解决方案
  15. 库卡profinet通讯中文说明书
  16. 如何判断关系是否自反,反自反,对称,反对称,传递
  17. App安全软件防护能力检测
  18. Andorid 方法数超过64K的问题
  19. drcom运行在路由器上
  20. python去掉空白行_python去掉空行

热门文章

  1. 关于C#的GetHashCode
  2. 直方图均衡化的代码解析
  3. HDU 6444 Neko's loop(单调队列)
  4. 微信小程序---家庭记账本开发(三)
  5. qcow2、raw、vmdk等镜像格式
  6. codevs 1017 乘积最大
  7. UI基础(四)之tableView (cell重用、原型cell、静态cell)/xib注意事项
  8. HTML 4.01/XHTML 1.0标签列表
  9. 在LoadRunner里何时该用 .NET Vuser协议?
  10. 孤读Paper——《ATSS:Adaptive Training Sample Selection》