使用Spark SQL 探索“全国失信人数据”
“全国法院失信被执行人名单”,网址:http://shixin.court.gov.cn/,可供查询,用于惩罚失信人员。数据量有100多万,也算是大数据了。其中身份证号已被处理,并不能直接看到全部号码。本人承诺不将此数据用于非法用途和不正当用途,仅作为个人学习数据处理分析的数据源,不针对任何个人和组织。
数据字段如下:
被执行人姓名/名称
性别
年龄
身份证号码/组织机构代码
法定代表人或者负责人姓名
执行法院
省份
执行依据文号
立案时间
案号
做出执行依据单位
生效法律文书确定的义务
被执行人的履行情况
失信被执行人行为具体情形
发布时间
关注次数
数据保存为JSON格式,比如:
{"id":1000000,"iname":"潘靖","caseCode":"(2014)鄂京山执字第00035号","age":23,"sexy":"男","cardNum":"4208211992****4513","courtName":"京山县人民法院","areaName":"湖北","partyTypeName":"580","gistId":"(2012)鄂京山道字第162号民事判决书","regDate":"2014年02月24日","gistUnit":"湖北省京山县人民法院道交法庭","duty":"被告赔偿原告款401700元。","performance":"全部未履行","disruptTypeName":"其他有履行能力而拒不履行生效法律文书确定义务","publishDate":"2015年03月23日"}
失信人数据分为个人、机构。
为了能够方便将统计结果图表化,还是采用Zeppelin notebook来处理。
读入数据:
val json_text = sqlContext.jsonFile("/home/zhf/Downloads/shixin_person.txt")
输出JSON字段:
json_text: org.apache.spark.sql.DataFrame = [age: bigint, areaName: string, businessEntity: string, cardNum: string, caseCode: string, courtName: string, disruptTypeName: string, duty: string, gistId: string, gistUnit: string, id: bigint, iname: string, partyTypeName: string, performance: string, performedPart: string, publishDate: string, regDate: string, sexy: string, unperformPart: string]
将表缓存以便后续快速查询:
json_text.registerTempTable("shixinren")
sqlContext.cacheTable("shixinren")
总记录数:
%sql select count(*) from shixinren
1,415,577
机构数量:
#粗略地把名字长度大于5的认为是机构
%sql select count(*) from shixinren where length(iname) >= 5
200,513
其余的都认为是个人。
年龄分布:
%sql select age,count(*) from shixinren group by age order by age
可见,发生纠纷的人主要是成年人,中年人占大多数。数据也有一些问题,可能是数据在填写时候的失误。
性别分布:
%sql select sexy,count(*) from shixinren group by sexy
男性较多啊,男性从时候经济活动的比较多。还有部分缺失性别的数据。
省份分布:
%sql select areaName,count(*) c from shixinren group by areaName order by c desc
发生纠纷的主要是经济大省和人口大省,一方面这些地方的经济行为较多,另一方面这些地方的人法律意识较强(被告的法律意识不够强啊)。
处理案件最多的前10个法院:
%sql select courtName,count(*) c from shixinren group by courtName order by c desc limit 10
好像都是浙江的法院,然并卵啊。
责任履行情况:
%sql select performance,count(*) from shixinren group by performance
不履行责任的原因:
%sql select disruptTypeName,count(*) c from shixinren group by disruptTypeName order by c desc limit 10
看来不履行法院判定的责任并不是没有能力啊。
不履行责任的姓氏TOP20:
%sql select substr(iname,0,1),count(*) c from shixinren where length(iname) <3 group by substr(iname,0,1) order by c desc limit 20
为了方便,不统计复姓。排前的都是常见的姓氏。
法院立案的年份:
%sql select substr(regdate,0,4),count(*) c from shixinren group by substr(regdate,0,4)
近年来数量逐步增加,可不是好事啊。同样数据有少量错误。
立案月份分布:
%sql select substr(substr(regdate,6,6),0,2),count(*) c from shixinren group by substr(substr(regdate,6,6),0,2)
全年分布均匀,1月份最多,可能是到年头了,还不还款,只好到法院解决(没想到最后还是没能解决!)。
一个人/机构多次作为被告的情况:
#姓名、证件号码一致就认为是同一个被告了
%sql select count(*) from (select iname,cardNum,count(*) c from shixinren group by iname,cardNum having c>1)t
187,020
前10:
%sql select iname,cardNum,count(*) c from shixinren group by iname,cardNum having c>1 order by c desc limit 10
竟然有这么多,这种时候主要还是公司,但也有“牛人”啊。
其中,案件的【生效法律文书确定的义务】如果通过分词,再统计词频,就可以知道哪些事件发生欠款的比较多了,用SQL的话,需要写UDF来分词,这里就不处理了。
使用Spark SQL 探索“全国失信人数据”相关推荐
- apache spark_使用Apache Spark SQL探索标普500和石油价格
apache spark 这篇文章将使用Apache Spark SQL和DataFrames查询,比较和探索过去5年中的S&P 500,Exxon和Anadarko Petroleum Co ...
- 使用Apache Spark SQL探索标普500和石油价格
这篇文章将使用Apache Spark SQL和DataFrames查询,比较和探索过去5年中的S&P 500,Exxon和Anadarko Petroleum Corporation的股价. ...
- dataframe记录数_大数据系列之Spark SQL、DataFrame和RDD数据统计与可视化
Spark大数据分析中涉及到RDD.Data Frame和SparkSQL的操作,本文简要介绍三种方式在数据统计中的算子使用. 1.在IPython Notebook运行Python Spark程序 ...
- 使用Spark SQL读取Hive上的数据
Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是RDD,也可以是外部的数据源(比如Parquet.Hive.Json等).Spark SQL的其中一个分支就是Spar ...
- Spark SQL(五)之数据加载与存储
一.数据加载 (1)默认数据源(parquet) 最简单加载数据的方式,所有操作都使用默认数据源(parquet).如果指定默认数据源需要配置 spark.sql.sources.default参数. ...
- python使用spark-sql读取数据并可视化_使用Spark SQL读取HBase上的数据
近日,由华为团队开发的 1.基于部分评估技术,该项目具有强大的数据剪枝和智能扫描特点: 2.支持自定义过滤规则.协处理器等以便支持超低延迟的处理: 3.支持SQL.DataFrame: 4.支持更多的 ...
- Spark SQL来读取现有Hive中的数据
Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是RDD,也可以是外部的数据源(比如Parquet.Hive.Json等). Spark SQL的其中一个分支就是Spa ...
- spark SQL(三)数据源 Data Source----通用的数据 加载/保存功能
Spark SQL 的数据源------通用的数据 加载/保存功能 Spark SQL支持通过DataFrame接口在各种数据源上进行操作.DataFrame可以使用关系变换进行操作,也可以用来创建临 ...
- 大数据之Spark(四):Spark SQL
一.SparkSQL的发展 1.1 概述 SparkSQL是Spark⽣态体系中的构建在SparkCore基础之上的⼀个基于SQL的计算模块. SparkSQL的前身不叫SparkSQL,⽽叫Shar ...
最新文章
- g++代码编译用选项-O3前后对比,前后执行时间对比如下
- 中国首篇Science机器人子刊!北航软体机器人实验室四年成果登上封面长篇
- Windows XP中的用户分为3类。
- 使用TimeQuest时序分析器
- rowid 对应mysql_请教一下相当于MySQL中Oracle的RowID
- 接口测试之HTTP协议详解
- 管道过滤器(Pipe-And-Filter)模式
- 程序员黑话,看懂的都是老司机!
- java之设计模式工厂三兄弟之简单工厂模式
- Alats2种局部刷新的比较
- 【美赛备赛】word编辑公式全攻略
- c语言吃豆豆游戏,高手帮我改下我的吃豆豆游戏吧
- 阿里云域名绑定IP手把手教学
- source insight护眼模式颜色
- 电子邮箱免费注册,比较好用的电子邮箱怎么注册?如何申请?
- 淘宝网禁售无证食品和保健品 问题商品将被屏蔽
- 通过Keycloak API理解OAuth2与OpenID Connect
- 当面试官问:JS中原始类型有哪些?
- 自编码器(Autoencoder)基本原理与模型实现
- react native fect network request failed
热门文章
- Python标准库中的re模块
- 小白学python(opencv模糊)
- devexpress xtraReport 汉化功能
- 十五天学会Autodesk Inventor,看完这一系列就够了(终章),答疑
- week1模拟与高精度
- ‘若有说明:int i,j=7, *p=i;,则与i=j;等价的语句是 A) i= *p; B) *p=*j; C) i=j; D) i=* *p;
- windows server 2012 r2 打补丁时提示此更新不适用于您的计算机
- 用批处理修复IE浏览器
- UE4动画系统,蒙太奇动画使用,添加动作
- java如何去除噪点,消除黑白图像中的噪点