Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gic-spark-tag-4.0
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangxiaokang
gic-spark-tag-4.0
Commits
b2bc700b
Commit
b2bc700b
authored
Aug 24, 2020
by
guos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
会员标签4.0
parent
3f26a427
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
103 additions
and
4 deletions
+103
-4
TagAboutExpireIntegralFilter.java
...va/com/gic/spark/filter/TagAboutExpireIntegralFilter.java
+102
-2
TagAccumulatedIntegralFilter.java
...va/com/gic/spark/filter/TagAccumulatedIntegralFilter.java
+1
-2
No files found.
src/main/java/com/gic/spark/filter/TagAboutExpireIntegralFilter.java
View file @
b2bc700b
...
...
@@ -6,15 +6,20 @@ import com.gic.spark.datasource.mysql.MysqlRddManager;
import
com.gic.spark.entity.bean.TagIntegralBean
;
import
com.gic.spark.entity.request.AbstractFilterRequest
;
import
com.gic.spark.entity.request.TagIntegralRequest
;
import
com.gic.spark.tag.TagConstant
;
import
com.gic.spark.util.AppEnvUtil
;
import
com.gic.spark.util.ConstantUtil
;
import
com.gic.spark.util.DateUtil
;
import
org.apache.spark.api.java.JavaRDD
;
import
org.apache.spark.sql.Column
;
import
org.apache.spark.sql.Dataset
;
import
org.apache.spark.sql.Row
;
import
scala.Tuple2
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
/**
* @description:
...
...
@@ -45,10 +50,105 @@ public class TagAboutExpireIntegralFilter implements BaseTagFilter {
public
JavaRDD
<
Long
>
filterValidMember
(
Integer
enterpriseId
,
AbstractFilterRequest
request
)
{
TagIntegralRequest
integralRequest
=(
TagIntegralRequest
)
request
;
Dataset
<
Row
>
dataset
=
dataSourceSharding
.
getDatasetByEnterpriseId
(
enterpriseId
)
.
filter
(
new
Column
(
"create_Time"
).
isNotNull
());
.
filter
(
new
Column
(
"limit_time"
).
isNotNull
())
.
filter
(
new
Column
(
"integral_change_type"
).
notEqual
(
3
))
.
filter
(
new
Column
(
"integral_value"
).
$greater
(
0
));
JavaRDD
<
TagIntegralBean
>
integralRDD
=
MysqlRddManager
.
getPojoFromDataset
(
dataset
,
TagIntegralBean
.
class
).
javaRDD
();
JavaRDD
<
Long
>
ecuRdd
=
integralRDD
.
mapPartitions
(
data
->{
List
<
TagIntegralBean
>
result
=
new
ArrayList
();
while
(
data
.
hasNext
()){
TagIntegralBean
integralBean
=
data
.
next
();
switch
(
integralRequest
.
getDomainType
()){
case
ACU_INFO:
if
(
TagConstant
.
CU_TYPE_ACU
==
integralBean
.
getCu_Type
()
&&
integralRequest
.
getCuVals
().
contains
(
integralBean
.
getCu_Id
())){
result
.
add
(
integralBean
);
}
break
;
case
SCU_INFO:
if
(
TagConstant
.
CU_TYPE_SCU
==
integralBean
.
getCu_Type
()
&&
integralRequest
.
getCuVals
().
contains
(
integralBean
.
getCu_Id
())){
result
.
add
(
integralBean
);
}
break
;
case
MCU_INFO:
if
(
TagConstant
.
CU_TYPE_MCU
==
integralBean
.
getCu_Type
()
&&
integralRequest
.
getCuVals
().
contains
(
integralBean
.
getCu_Id
())){
result
.
add
(
integralBean
);
}
break
;
default
:
break
;
}
}
return
result
.
iterator
();
}).
mapPartitions
(
data
->{
List
<
TagIntegralBean
>
result
=
new
ArrayList
();
while
(
data
.
hasNext
()){
TagIntegralBean
integralBean
=
data
.
next
();
switch
(
integralRequest
.
getTimeRangeType
()){
case
LATELY:
if
(
integralBean
.
getLimit_time
().
getTime
()>
DateUtil
.
addNumForDay
(
DateUtil
.
getDate
(),
integralRequest
.
getTimeNum
()).
getTime
()){
result
.
add
(
integralBean
);
}
break
;
case
FIXATION:
if
(
integralBean
.
getLimit_time
().
getTime
()>=
integralRequest
.
getBeginTime
().
getTime
()
&&
integralBean
.
getCreate_Time
().
getTime
()<=
integralRequest
.
getEndTime
().
getTime
()){
result
.
add
(
integralBean
);
}
break
;
return
null
;
default
:
break
;
}
}
return
result
.
iterator
();
}).
mapToPair
(
data
->
Tuple2
.
apply
(
data
.
getFile_ecu_id
(),
data
.
getIntegral_Value
()))
.
reduceByKey
((
x
,
y
)->
x
+
y
)
.
mapPartitions
(
data
->{
Set
<
Long
>
result
=
new
HashSet
();
while
(
data
.
hasNext
()){
Tuple2
<
Long
,
Integer
>
tp2
=
data
.
next
();
int
integralValue
=
tp2
.
_2
();
switch
(
integralRequest
.
getNumberType
()){
case
eq:
if
(
integralRequest
.
getEqualNum
()==
integralValue
){
result
.
add
(
tp2
.
_1
());
}
break
;
case
gt:
if
(
integralValue
>
integralRequest
.
getBeginNum
()){
result
.
add
(
tp2
.
_1
());
}
break
;
case
gte:
if
(
integralValue
>=
integralRequest
.
getBeginNum
()){
result
.
add
(
tp2
.
_1
());
}
break
;
case
lt:
if
(
integralValue
<
integralRequest
.
getEndNum
()){
result
.
add
(
tp2
.
_1
());
}
break
;
case
lte:
if
(
integralValue
<=
integralRequest
.
getEndNum
()){
result
.
add
(
tp2
.
_1
());
}
break
;
case
between:
if
(
integralValue
>=
integralRequest
.
getBeginNum
()
&&
integralValue
<=
integralRequest
.
getEndNum
()){
result
.
add
(
tp2
.
_1
());
}
break
;
default
:
break
;
}
}
return
result
.
iterator
();
});
return
ecuRdd
;
}
}
src/main/java/com/gic/spark/filter/TagAccumulatedIntegralFilter.java
View file @
b2bc700b
...
...
@@ -50,8 +50,7 @@ public class TagAccumulatedIntegralFilter implements BaseTagFilter {
public
JavaRDD
<
Long
>
filterValidMember
(
Integer
enterpriseId
,
AbstractFilterRequest
request
)
{
TagIntegralRequest
integralRequest
=(
TagIntegralRequest
)
request
;
Dataset
<
Row
>
dataset
=
dataSourceSharding
.
getDatasetByEnterpriseId
(
enterpriseId
)
.
filter
(
new
Column
(
"create_Time"
).
isNotNull
())
.
filter
(
new
Column
(
"service_flag"
).
equalTo
(
1
));
.
filter
(
new
Column
(
"create_Time"
).
isNotNull
());
JavaRDD
<
TagIntegralBean
>
integralRDD
=
MysqlRddManager
.
getPojoFromDataset
(
dataset
,
TagIntegralBean
.
class
).
javaRDD
();
JavaRDD
<
Long
>
ecuRdd
=
integralRDD
.
mapPartitions
(
data
->{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment