“全国法院失信被执行人名单”,网址: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 探索“全国失信人数据”相关推荐

  1. apache spark_使用Apache Spark SQL探索标普500和石油价格

    apache spark 这篇文章将使用Apache Spark SQL和DataFrames查询,比较和探索过去5年中的S&P 500,Exxon和Anadarko Petroleum Co ...

  2. 使用Apache Spark SQL探索标普500和石油价格

    这篇文章将使用Apache Spark SQL和DataFrames查询,比较和探索过去5年中的S&P 500,Exxon和Anadarko Petroleum Corporation的股价. ...

  3. dataframe记录数_大数据系列之Spark SQL、DataFrame和RDD数据统计与可视化

    Spark大数据分析中涉及到RDD.Data Frame和SparkSQL的操作,本文简要介绍三种方式在数据统计中的算子使用. 1.在IPython Notebook运行Python Spark程序 ...

  4. 使用Spark SQL读取Hive上的数据

    Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是RDD,也可以是外部的数据源(比如Parquet.Hive.Json等).Spark SQL的其中一个分支就是Spar ...

  5. Spark SQL(五)之数据加载与存储

    一.数据加载 (1)默认数据源(parquet) 最简单加载数据的方式,所有操作都使用默认数据源(parquet).如果指定默认数据源需要配置 spark.sql.sources.default参数. ...

  6. python使用spark-sql读取数据并可视化_使用Spark SQL读取HBase上的数据

    近日,由华为团队开发的 1.基于部分评估技术,该项目具有强大的数据剪枝和智能扫描特点: 2.支持自定义过滤规则.协处理器等以便支持超低延迟的处理: 3.支持SQL.DataFrame: 4.支持更多的 ...

  7. Spark SQL来读取现有Hive中的数据

    Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是RDD,也可以是外部的数据源(比如Parquet.Hive.Json等). Spark SQL的其中一个分支就是Spa ...

  8. spark SQL(三)数据源 Data Source----通用的数据 加载/保存功能

    Spark SQL 的数据源------通用的数据 加载/保存功能 Spark SQL支持通过DataFrame接口在各种数据源上进行操作.DataFrame可以使用关系变换进行操作,也可以用来创建临 ...

  9. 大数据之Spark(四):Spark SQL

    一.SparkSQL的发展 1.1 概述 SparkSQL是Spark⽣态体系中的构建在SparkCore基础之上的⼀个基于SQL的计算模块. SparkSQL的前身不叫SparkSQL,⽽叫Shar ...

最新文章

  1. g++代码编译用选项-O3前后对比,前后执行时间对比如下
  2. 中国首篇Science机器人子刊!北航软体机器人实验室四年成果登上封面长篇
  3. Windows XP中的用户分为3类。
  4. 使用TimeQuest时序分析器
  5. rowid 对应mysql_请教一下相当于MySQL中Oracle的RowID
  6. 接口测试之HTTP协议详解
  7. 管道过滤器(Pipe-And-Filter)模式
  8. 程序员黑话,看懂的都是老司机!
  9. java之设计模式工厂三兄弟之简单工厂模式
  10. Alats2种局部刷新的比较
  11. 【美赛备赛】word编辑公式全攻略
  12. c语言吃豆豆游戏,高手帮我改下我的吃豆豆游戏吧
  13. 阿里云域名绑定IP手把手教学
  14. source insight护眼模式颜色
  15. 电子邮箱免费注册,比较好用的电子邮箱怎么注册?如何申请?
  16. 淘宝网禁售无证食品和保健品 问题商品将被屏蔽
  17. 通过Keycloak API理解OAuth2与OpenID Connect
  18. 当面试官问:JS中原始类型有哪些?
  19. 自编码器(Autoencoder)基本原理与模型实现
  20. react native fect network request failed

热门文章

  1. Python标准库中的re模块
  2. 小白学python(opencv模糊)
  3. devexpress xtraReport 汉化功能
  4. 十五天学会Autodesk Inventor,看完这一系列就够了(终章),答疑
  5. week1模拟与高精度
  6. ‘若有说明:int i,j=7, *p=i;,则与i=j;等价的语句是 A) i= *p; B) *p=*j; C) i=j; D) i=* *p;
  7. windows server 2012 r2 打补丁时提示此更新不适用于您的计算机
  8. 用批处理修复IE浏览器
  9. UE4动画系统,蒙太奇动画使用,添加动作
  10. java如何去除噪点,消除黑白图像中的噪点