zoukankan      html  css  js  c++  java
  • 关于根据大数据对非正常企业的判断小结

    一、题目:

    数据组成

    增值税发票数据,文件名zzsfp

    发票对应货物明细数据,文件名zzsfp_hwmx

    企业信息,文件名nsrxx

     数据字段说明

    zzsfp

    字段名称

    字段含义

    数据类型

    备注

    fp_nid

    发票id

    String

    发票唯一标识

    xf_id

    销方识别号

    String

    企业唯一身份标识

    gf_id

    购方识别号

    String

    企业唯一身份标识

    je

    金额

    Double

     

    se

    税额

    Double

     

    jshj

    价税合计

    Double

     

    kpyf

    开票月份

    String

     

    kprq

    开票日期

    String

     

    zfbz

    作废标志

    String

    ‘Y’代表作废

    zzsfp表内容($ less zzsfp

     

    zzsfp_hwmx

    字段名称

    字段含义

    数据类型

    备注

    fp_nid

    发票id

    String

    发票唯一标识

    date_key

    开票月份

    String

     

    hwmc

    货物名称

    String

     

    ggxh

    规格型号

    String

     

    dw

    单位

    String

     

    sl

    数量

    Double

     

    dj

    单价

    Double

     

    je

    金额

    Double

     

    se

    税额

    Double

     

    spbm

    商品编码

    String

     

    zzsfp_hwmx表内容($ less zzsfp_hwmx)

     

    nsrxx

    字段名称

    字段含义

    数据类型

    备注

    hydm

    行业代码

    String

     

    nsr_id

    纳税人id

    String

    企业唯一身份标识

    djzclx_dm

    登记注册类型代码

    String

    网上可查阅相关代码含义

    kydjrq

    开业登记日期

    String

     

    xgrq

    修改日期

    String

    给企业打标签的时间

    label

    标签

    String

    ‘0’代表正常企业

    ‘1’代表问题企业

    nsrxx表内容($ less nsrxx)

     

     关联数据的必要说明

    (1) zzsfp表可通过fp_nid进行关联

    (2) zzsfp表可通过xf_id或者gf_idnsrxx中的nsr_id进行关联,分离出销项发票表和进项发票表

    最终给出的数据情况

    企业总数:33,829

    非正常企业总数:318

    二、第一天解题思路

    首先我实在是上课的时候没有注意听到老师说的怎样算是非正常企业,所以下手就很难就想了半天。

    1、首先对zzsfp_hwmx表利用MapReduce进行操作,我通过发票id把相同的金额进行叠加统计,但是这个表里有很多垃圾数据,比如说这个表有十个属性列但是数据里有超过10列的数据,还有些是金额属性列上对应的值不是数字类型,因为我没对zzsfp_hwmx表进行清洗。

    2、再然后我利用上面得到的叠加金额后的文件和zzsfp文件进行连接,用得是之前学习的MapReduce实验五-Map端join。

    得出发票id,叠加金额,销方识别号,购方识别号,金额,税额六个属性的表。

     然后把叠加金额和金额做差取绝对值进行排序

     很明显有很多的问题。

    1、zzsfp里有很多重复的数据没有清洗

    2、zzsfp里有些识别号在nsrxx表里找不到

  • 相关阅读:
    2016-12-7
    使用netty4.x客户端接收较大数据量报文时发生的读取不完整bug修复记录
    AngularJS
    使用Netty收发二进制报文问题记
    如何在Linux中查看所有正在运行的进程
    面试连环炮系列(十四): HTTP状态码302的跳转逻辑
    算法天天练1:计算最长子串
    面试连环炮系列(十三):实现一个线程有几种方法
    面试连环炮系列(十二):说说Atomiclnteger的使用场景
    面试连环炮系列(十一):说说你们的分布式ID设计方案
  • 原文地址:https://www.cnblogs.com/chenaiiu/p/14050302.html
Copyright © 2011-2022 走看看