一种基于Spark的纳税人利益关联网络并行生成方法技术

技术编号:13183642 阅读:44 留言:0更新日期:2016-05-11 15:14
一种基于Spark的纳税人利益关联网络并行生成方法,包括以下步骤:1)、从原始数据中构造纳税人利益关联初始网络TPIN0;所述的原始数据包括企业的工商局注册信息、证监会上市公司信息、户籍部门的信息、金融机构披露的信息以及税务部门的电子发票信息;2)、使用多种聚合算子对TPIN0进行约简,得到TPIN;3)、并行输出纳税人利益关联网络TPIN0。本发明专利技术提出的并行生成方法具有高效率、可扩展的特点,为后续基于纳税人利益关联网络的税务指标挖掘和图分析的并行化奠定了基础,能用以应对海量异构的涉税数据的TPIN生成。

【技术实现步骤摘要】
一种基于Spark的纳税人利益关联网络并行生成方法
本专利技术涉及计算机科学与技术中的并行图生成领域,具体涉及一种基于Spark的纳税人利益关联网络并行生成方法。
技术介绍
随着国家税务大数据分析平台和电子税务大数据计算与服务的开展,传统的纸质发票逐步被电子发票所取代。如何对每天数以千万计的电子发票涉税数据进行分析,挖掘出纳税人之间潜在、隐蔽、多样的利益关联关系成为一个亟待解决的问题。针对如何有效挖掘出利益关系,以下专利提供了可用的技术方案:中国专利文献201310293435.5公开了一种基于着色加权图的纳税人利益关联网络(TPIN),提供了一种基于多种纳税人利益关联关系网络模型检测企业偷漏税行为的方法。然而现有的TPIN生成方法是基于串行的思想进行设计的,在应对海量异构的涉税数据的TPIN生成时,往往出现生成慢、甚至无法生成的情况,也为后续基于TPIN的税务指标挖掘和图分析带来了极大的挑战。本申请考虑采用分布式计算框架Spark处理涉税数据。Spark是当前广泛使用的并行计算框架,采用Master/Slave的集群架构。其中一个Master节点管理多个Slave节点并负责任务调度和分发,而多个Slave节点控制多个计算单元响应Master调度并进行实际计算和数据存储。Spark框架下的数据并行计算,其本质在于通过可选的多种分区策略,将数据集分成相互独立的多个数据分区,分别交由多个计算单元同时处理。另外,Spark的内存中计算、DAG调度、可编程分区等特性都使得并行计算的速度进一步提升。Spark的可编程分区特性,可以有效地将异构的涉税数据转化为同构的涉税数据;提高数据并行度特性和内存中计算特性,可以极大地提高TPIN的生成效率,并且为后续基于TPIN的高效图分析奠定基础。
技术实现思路
本专利技术的目的在于针对上述现有技术中的问题,提供一种基于Spark的纳税人利益关联网络并行生成方法,用以应对海量异构的涉税数据的TPIN生成,也为后续基于TPIN的并行图分析奠定基础。为了实现上述目的,本专利技术纳税人利益关联网络并行生成方法,包括以下步骤:1)、从原始数据中构造纳税人利益关联初始网络TPIN0;所述的原始数据包括企业的工商局注册信息、证监会上市公司信息、户籍部门的信息、金融机构披露的信息以及税务部门的电子发票信息;(1)基于哈希分区方法,根据纳税人原始信息,即企业的工商局注册信息以及证监会上市公司信息,构造TPIN0的点表V;(2)基于协同分区方法,根据相关部门的信息,即户籍部门的信息、金融机构披露的信息以及税务部门的电子发票信息,构造TPIN0的边表E;(3)基于顶点分割的分区方法,构造可并行计算的TPIN0;2)、使用多种聚合算子对TPIN0进行约简,得到TPIN;(1)对特定聚合算子进行模式识别并得到所有待聚合的顶点;(2)将所有待聚合顶点的信息同步到邻接边的属性域中;(3)利用多节点聚合边权重计算方法,产生约简后的边表newE;(4)修改所有待聚合节点的属性,产生约简后的点表newV;(5)基于顶点分割的分区方法,构造纳税人利益关联网络TPIN;3)、并行输出纳税人利益关联网络TPIN0。所述的哈希分区方法具体步骤为:Step1:从总局数据中心读入企业的工商局注册信息和证监会上市公司信息,每条记录的数据格式形如:纳税人内部码纳税人名称法定代表人名称Step2:基于哈希分区方法根据每条记录的纳税人内部码将这些信息分成NumPartition1个数据分区,所述数据分区是原始数据的子集,不同分区的数据之间不存在交叉,且各个分区的数据量相对均衡;将NumPartition1个分区的数据分发给Slave节点,Slave节点控制的每个计算单元分别负责处理一个分区的数据;所述哈希分区方法如下:记录所属分区Id=(纳税人内部码.hashCode())modNumPartition1;其中,纳税人内部码.hashCode()表示求纳税人内部码的哈希值,mod表示左边数值对右边数值取余,得到的记录所属分区Id∈{0,1,...,NumPartition1-1};Step3:首先,每个计算单元从各自处理分区的企业注册信息和上市公司信息中,过滤出所有的企业、企业实际控制人和企业董事;因为每个分区的数据之间不存在依赖关系,使用多个计算单元同时过滤不同分区的数据以实现并行过滤;其次,对于每个分区过滤出的信息,按照类别添加Color属性,设置Color(企业)=C、Color(企业实际控制人)=L、Color(企业董事)=B,所得结果构成了TPIN0的点表V;V中每个点的格式为(VertexId,Colorvertex)。所述的协同分区方法具体步骤为:Step1:按照一个已分区数据集的分区方法对另一个未分区的数据集进行分区,使两个数据集的分布方式相同;将户籍部门的信息、金融机构披露的信息、税务部门的电子发票信息按照点表V的分区方式进行协同分区;Step2:对每个分区的每条记录,映射出表示纳税人利益关联关系的二元组,作为TPIN0的边,形如(L1,C1);Step3:为每条边添加属性域;对每个分区映射出的每个二元组,添加一个元组类型的元素扩展形成三元组,添加的元素为边的属性域,用来表示边的多个属性,如:着色加权图的权值、着色加权图的颜色、程序运行状态、程序变量、消息和用户定义属性;Step4:为每条边的属性域增加颜色属性;基于纳税人利益关联关系,为属性域添加颜色属性,设置Color(实际控制关系)=CL、Color(互为亲属关系)=IR、Color(控股关系)=HR、Color(利益互锁关系)=IL、Color(单向交易关系)=TR;得到带颜色属性的边,形如(L1,C1,(CL));Step5:为每条边的属性域增加权值属性;为所有颜色为CL、IL、IR的边的属性域添加权值属性,设置权值为1,表示顶点之间存在绝对的利益关联关系;结果形如Edge(L1,C1,(1,CL));为所有颜色为HR的边的属性域添加权值属性,根据该企业董事对该企业的控股百分比设置权值,取值范围为(0,1];结果形如Edge(B1,C1,(0.2,HR));为所有颜色为TR的边的属性域添加权值属性,根据源点企业和终点企业的利益关联度函数设置权值,取值范围为(0,1];结果形如Edge(C1,C2,(0.05,TR));其中,单向交易边的权值用来判断源点企业和终点企业是否存在潜在的偷漏税行为;上述过程的所得结果构成了TPIN0的边表E,E的数据结构表示为Edge(srcId,dstId,(Weightedge,Coloredge)),三元组的第一个元素映射为E的字段属性srcId,第二个元素映射为E的字段属性dstId,属性域中的权值属性映射为E的字段属性Weightedge,属性域中的颜色属性映射为E的字段属性Coloredge。所述的基于顶点分割的分区方法,构造可并行计算TPIN0的具体步骤为:①基于顶点分割方法,对V和E进行分区;E中的每条边只属于一个边表分区,点的属性只属于一个点表分区,当点的邻接边分别属于不同边表分区时,该点就被分割给多个边表分区;Step1:将E中的边基于2D分区方法均匀地分给每个边表分区,得到分区内部网络相对完整的NumPa本文档来自技高网
...
一种基于Spark的纳税人利益关联网络并行生成方法

【技术保护点】
一种基于Spark的纳税人利益关联网络并行生成方法,其特征在于,包括以下步骤:1)、从原始数据中构造纳税人利益关联初始网络TPIN0;所述的原始数据包括企业的工商局注册信息、证监会上市公司信息、户籍部门的信息、金融机构披露的信息以及税务部门的电子发票信息;(1)基于哈希分区方法,根据纳税人原始信息,即企业的工商局注册信息以及证监会上市公司信息,构造TPIN0的点表V;(2)基于协同分区方法,根据相关部门的信息,即户籍部门的信息、金融机构披露的信息以及税务部门的电子发票信息,构造TPIN0的边表E;(3)基于顶点分割的分区方法,构造可并行计算的TPIN0;2)、使用多种聚合算子对TPIN0进行约简,得到TPIN;(1)对特定聚合算子进行模式识别并得到所有待聚合的顶点;(2)将所有待聚合顶点的信息同步到邻接边的属性域中;(3)利用多节点聚合边权重计算方法,产生约简后的边表newE;(4)修改所有待聚合节点的属性,产生约简后的点表newV;(5)基于顶点分割的分区方法,构造纳税人利益关联网络TPIN;3)、并行输出纳税人利益关联网络TPIN0。

【技术特征摘要】
1.一种基于Spark的纳税人利益关联网络并行生成方法,其特征在于,包括以下步骤:1)、从原始数据中构造纳税人利益关联初始网络TPIN0;所述的原始数据包括企业的工商局注册信息、证监会上市公司信息、户籍部门的信息、金融机构披露的信息以及税务部门的电子发票信息;(1)基于哈希分区方法,根据企业的工商局注册信息以及证监会上市公司信息,构造TPIN0的点表V;所述的哈希分区方法具体步骤为:Step1:从总局数据中心读入企业的工商局注册信息和证监会上市公司信息,每条记录的数据格式形如:纳税人内部码纳税人名称法定代表人名称Step2:基于哈希分区方法根据每条记录的纳税人内部码将这些信息分成NumPartition1个数据分区,所述数据分区是原始数据的子集,不同分区的数据之间不存在交叉,且各个分区的数据量相对均衡;将NumPartition1个分区的数据分发给Slave节点,Slave节点控制的每个计算单元分别负责处理一个分区的数据;所述哈希分区方法如下:记录所属分区Id=(纳税人内部码.hashCode())modNumPartition1;其中,纳税人内部码.hashCode()表示求纳税人内部码的哈希值,mod表示左边数值对右边数值取余,得到的记录所属分区Id∈{0,1,...,NumPartition1-1};Step3:首先,每个计算单元从各自处理分区的企业注册信息和上市公司信息中,过滤出所有的企业、企业实际控制人和企业董事;因为每个分区的数据之间不存在依赖关系,使用多个计算单元同时过滤不同分区的数据以实现并行过滤;其次,对于每个分区过滤出的信息,按照类别添加Color属性,设置Color(企业)=C、Color(企业实际控制人)=L、Color(企业董事)=B,所得结果构成了TPIN0的点表V;V中每个点的格式为(VertexId,Colorvertex);(2)基于协同分区方法,根据户籍部门的信息、金融机构披露的信息以及税务部门的电子发票信息,构造TPIN0的边表E;所述的协同分区方法具体步骤为:Step1:按照一个已分区数据集的分区方法对另一个未分区的数据集进行分区,使两个数据集的分布方式相同;将户籍部门的信息、金融机构披露的信息、税务部门的电子发票信息按照点表V的分区方式进行协同分区;Step2:对每个分区的每条记录,映射出表示纳税人利益关联关系的二元组,作为TPIN0的边,形如(L1,C1);Step3:为每条边添加属性域;对每个分区映射出的每个二元组,添加一个元组类型的元素扩展形成三元组,添加的元素为边的属性域,用来表示边的多个属性,如:着色加权图的权值、着色加权图的颜色、程序运行状态、程序变量、消息和用户定义属性;Step4:为每条边的属性域增加颜色属性;基于纳税人利益关联关系,为属性域添加颜色属性,设置Color(实际控制关系)=CL、Color(互为亲属关系)=IR、Color(控股关系)=HR、Color(利益互锁关系)=IL、Color(单向交易关系)=TR;得到带颜色属性的边,形如(L1,C1,(CL));Step5:为每条边的属性域增加权值属性;为所有颜色为CL、IL、IR的边的属性域添加权值属性,设置权值为1,表示顶点之间存在绝对的利益关联关系;结果形如Edge(L1,C1,(1,CL));为所有颜色为HR的边的属性域添加权值属性,根据该企业董事对该企业的控股百分比设置权值,取值范围为(0,1];结果形如Edge(B1,C1,(0.2,HR));为所有颜色为TR的边的属性域添加权值属性,根据源点企业和终点企业的利益关联度函数设置权值,取值范围为(0,1];结果形如Edge(C1,C2,(0.05,TR));其中,单向交易边的权值用来判断源点企业和终点企业是否存在潜在的偷漏税行为;上述过程的所得结果构成了TPIN0的边表E,E的数据结构表示为Edge(srcId,dstId,(Weightedge,Coloredge)),三元组的第一个元素映射为E的字段属性srcId,第二个元素映射为E的字段属性dstId,属性域中的权值属性映射为E的字段属性Weightedge,属性域中的颜色属性映射为E的字段属性Coloredge;(3)基于顶点分割的分区方法,构造可并行计算的TPIN0;所述的基于顶点分割的分区方法,构造可并行计算TPIN0的具体步骤为:①基于顶点分割方法,对V和E进行分区;E中的每条边只属于一个边表分区,点的属性只属于一个点表分区,当点的邻接边分别属于不同边表分区时,该点就被分割给多个边表分区;Step1:将E中的边基于2D分区方法均匀地分给每个边表分区,得到分区内部网络相对完整的NumPartition2个边表分区;所述2D分区方法是指基于边的源点Id和终点Id,计算边所属的边表分区,计算过程如下:col=(srcId×Prime)%sqrt(NumPartition2)row=(dstId×Prime)%sqrt(NumPartition2)所属边表分区Id=(col×sqrt(NumPartition2)+row)%NumPartition2其中,Prime表示一个足够大的素数,作为乘数作用于srcId和dstId,使边均匀地分布在多个边表分区,减少TPIN0网络中边密集区域造成的负载不均衡;%表示取余操作,sqrt()表示对括号内数值求平方根,得到的所属边表分区Id∈{0,1,...,NumPartition2-1};Step2:将V中的点基于哈希分区方法根据每个点的VertexId,将点表数据均匀地分成NumPartition1个点表分区;所述哈希分区方法如下:所属点表分区Id=(VertexId.hashCode())modNumPartition1;其中,得到的所属点表分区Id∈{0,1,...,NumPartition1-1};②生成辅助路由表,组成TPIN0;Step1:对于每个边表分区的每条边,将它们的源点Id或终点Id与所属边表分区Id组成二元组,形如(L1,1);Step2:将Step1所得结果按照点表V的分区方式协同分区;所述协同分区方法,按照一个已分区数据集的分区方法对另一个未分区的数据集进行分区,使两数据集的分布方式相同;Step3:对每个点表分区内的二元组,消除重复二元组并进行聚集,得到每个顶点所有邻接边的所属边表分区Id的集合,由此构造出与点表结构相同的辅助路由表,用来指示点表中的每个顶点属性在与边表发生连接时应该移动到的边表分区;辅助路由表形如(VertexId,Vector[int]),其中,Vector[int]表示一个存放Int类型数值的动态数组;至此,点表V、边表E和辅助路由表共同组成了完整的TPIN0;2)、使用多种聚合算子对TPIN0进行约简,得到TPIN;(1)对特定聚合算子进行模式识别并得到所有待聚合的顶点;所述的对特定聚合算子进行模式识别并得到所有待...

【专利技术属性】
技术研发人员:董博郑庆华阮建飞蔚文达田锋杨征宽
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1