文档章节

使用Zeppelin进行"失信人"公开数据的分析

openthings
 openthings
发布于 2017/05/22 09:20
字数 1123
阅读 119
收藏 0

“全国法院失信被执行人名单”,网址: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日"}
  • 1

失信人数据分为个人、机构。 
为了能够方便将统计结果图表化,还是采用Zeppelin notebook来处理。 
读入数据:

val json_text = sqlContext.jsonFile("/home/zhf/Downloads/shixin_person.txt")
  • 1

输出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]
  • 1

将表缓存以便后续快速查询:

json_text.registerTempTable("shixinren")
sqlContext.cacheTable("shixinren")
  • 1
  • 2

总记录数:

%sql select count(*) from shixinren
  • 1
1,415,577
  • 1

机构数量:

#粗略地把名字长度大于5的认为是机构
%sql select count(*) from shixinren where length(iname) >= 5
  • 1
  • 2

200,513

其余的都认为是个人。
  • 1

年龄分布:

%sql select age,count(*) from shixinren group by age order by age
  • 1

年龄分布图
可见,发生纠纷的人主要是成年人,中年人占大多数。数据也有一些问题,可能是数据在填写时候的失误。 
性别分布:

%sql select sexy,count(*) from shixinren group by sexy
  • 1

性别分布
男性较多啊,男性从时候经济活动的比较多。还有部分缺失性别的数据。 
省份分布:

%sql select areaName,count(*) c from shixinren group by areaName order by c desc 
  • 1

省份分布
发生纠纷的主要是经济大省和人口大省,一方面这些地方的经济行为较多,另一方面这些地方的人法律意识较强(被告的法律意识不够强啊)。 
处理案件最多的前10个法院:

%sql select courtName,count(*) c from shixinren group by courtName order by c desc limit 10
  • 1

法院分布
好像都是浙江的法院,然并卵啊。

责任履行情况:

%sql select performance,count(*) from shixinren group by performance
  • 1

责任履行情况
不履行责任的原因:

%sql select disruptTypeName,count(*) c from shixinren group by disruptTypeName order by c desc limit 10
  • 1

不履行的原因
看来不履行法院判定的责任并不是没有能力啊。 
不履行责任的姓氏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
  • 1

姓氏
为了方便,不统计复姓。排前的都是常见的姓氏。 
法院立案的年份:

%sql select substr(regdate,0,4),count(*) c  from shixinren group by substr(regdate,0,4)
  • 1

立案年份
近年来数量逐步增加,可不是好事啊。同样数据有少量错误。 
立案月份分布: 
月份分布

%sql select substr(substr(regdate,6,6),0,2),count(*) c from shixinren group by substr(substr(regdate,6,6),0,2) 
  • 1

全年分布均匀,1月份最多,可能是到年头了,还不还款,只好到法院解决(没想到最后还是没能解决!)。

一个人/机构多次作为被告的情况:

#姓名、证件号码一致就认为是同一个被告了
%sql select count(*) from (select iname,cardNum,count(*) c from shixinren group by iname,cardNum having c>1)t
  • 1
  • 2
187,020
  • 1

前10:

%sql select iname,cardNum,count(*) c from shixinren group by iname,cardNum having c>1 order by c desc limit 10
  • 1

竟然有这么多,这种时候主要还是公司,但也有“牛人”啊。 
多次被告

其中,案件的【生效法律文书确定的义务】如果通过分词,再统计词频,就可以知道哪些事件发生欠款的比较多了,用SQL的话,需要写UDF来分词,这里就不处理了。

 

转载地址:http://lib.csdn.NET/article/Spark/63646

本文转载自:http://lib.csdn.NET/article/Spark/63646

openthings
粉丝 308
博文 1115
码字总数 642784
作品 1
东城
架构师
私信 提问
Zeppelin on spark

目前zeppelin最新版本是0.5.6,http://zeppelin.incubator.apache.org/ zepplin是 apache孵化器中的一个项目,但是由于其提供的简单,易操作的web版交互式以及可视化分析工具,也较为受欢迎。...

莫问viva
2016/02/24
958
0
HAWQ取代传统数仓实践(十九)——OLAP

一、OLAP简介 1. 概念 OLAP是英文是On-Line Analytical Processing的缩写,意为联机分析处理。此概念最早由关系数据库之父E.F.Codd于1993年提出。OLAP允许以一种称为多维数据集的结构,访问业...

wzy0623
2017/06/14
0
0
OushuDB入门(七)——OLAP篇

一、OLAP简介 1. 概念 OLAP是英文是On-Line Analytical Processing的缩写,意为联机分析处理。此概念最早由关系数据库之父E.F.Codd于1993年提出。OLAP允许以一种称为多维数据集的结构,访问业...

wzy0623
2018/05/23
0
0
Apache Zeppelin Notebook和R的交互

介绍 这篇文章的目的是帮助您开始使用 Apache Zeppelin Notebook,它可以满足您用R做数据科学的需求。Zeppelin 是一个提供交互数据分析且基于Web的笔记本。方便你做出可数据驱动的、可交互且...

aibati2008
2016/09/27
45
0
基于 Web 的交互数据分析笔记本--Zeppelin

Apache Zeppelin 是一个让交互式数据分析变得可行的基于网页的开源框架。Zeppelin提供了数据分析、数据可视化等功能。 Zeppelin 是一个提供交互数据分析且基于Web的笔记本。方便你做出可数据...

匿名
2009/03/10
17.9K
8

没有更多内容

加载失败,请刷新页面

加载更多

Jenkins系列_插件安装及报错处理

进入Jenkins之后我们可以进行插件的安装,插件管理位于以下模块: 发现上面报了一堆错误,是因为插件的依赖没有安装好,那么这一节,就先把这些错误解决掉吧。解决完成后,也就基本会使用插件...

shzwork
今天
2
0
mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)

查询所有字段 select * from 表名; 查询自定字段 select 字段名 from 表名; 查询指定数据 select * from 表名 where 条件; 带关键字IN的查询 select * from 表名 where 条件 [not] in(元素...

edison_kwok
昨天
9
0
解决多线程并行加载缓存问题(利用guava实现)

依赖 com.google.guava:guava:20.0 import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import j......

暗中观察
昨天
3
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
昨天
2
0
组装一台工作游戏两用机

一、配置清单如下: 分类 项目 价格(元) 主板 华硕(ASUS)TUF Z370-PLUS GAMING II 电竞特工 Z370二代 支持9代CPU 1049 CPU 英特尔(Intel) i7 8700K 酷睿六核 盒装CPU处理器 2640 风扇 九...

mbzhong
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部