修复聚合功能以及Sesson比率多线程Bug
main
oeljeklaus-you 7 years ago
parent fb0c0947c7
commit a5f6276f2f

@ -2,13 +2,10 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="a7505764-040b-48e2-b2fc-8c5b579e595f" name="Default" comment="">
<change beforePath="" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/SessionAggrStatDao.java" />
<change beforePath="" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/impl/SessionAggrStatDaoImpl.java" />
<change beforePath="" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/hust/domain/SessionAggrStat.java" />
<change beforePath="" afterPath="$PROJECT_DIR$/src/test/java/cn/edu/hust/dao/SessionAggrDao.java" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/factory/DaoFactory.java" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/factory/DaoFactory.java" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/hust/session/SessionAggrStatAccumulator.java" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/hust/session/SessionAggrStatAccumulator.java" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/hust/session/UserVisitAnalyze.java" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/hust/session/UserVisitAnalyze.java" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/hust/util/DateUtils.java" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/hust/util/DateUtils.java" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/target/" />
@ -24,136 +21,79 @@
<file leaf-file-name="UserVisitAnalyze.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/session/UserVisitAnalyze.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4652">
<caret line="357" column="0" lean-forward="false" selection-start-line="357" selection-start-column="0" selection-end-line="357" selection-end-column="0" />
<state relative-caret-position="330">
<caret line="388" column="94" lean-forward="false" selection-start-line="388" selection-start-column="94" selection-end-line="388" selection-end-column="94" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#4629#4854#0" expanded="true" />
<element signature="e#4853#4854#0" expanded="true" />
<element signature="e#5084#7825#0" expanded="true" />
<element signature="e#7824#7825#0" expanded="true" />
<element signature="e#8045#8268#0" expanded="true" />
<element signature="e#8267#8268#0" expanded="true" />
<element signature="e#8521#9535#0" expanded="true" />
<element signature="e#9534#9535#0" expanded="true" />
<element signature="e#4667#4892#0" expanded="true" />
<element signature="e#4891#4892#0" expanded="true" />
<element signature="e#5122#7873#0" expanded="true" />
<element signature="e#7872#7873#0" expanded="true" />
<element signature="e#8093#8316#0" expanded="true" />
<element signature="e#8315#8316#0" expanded="true" />
<element signature="e#8569#9583#0" expanded="true" />
<element signature="e#9582#9583#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="SessionAggrStat.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/domain/SessionAggrStat.java">
<file leaf-file-name="Accumulable.class" pinned="false" current-in-tab="false">
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/spark/spark-core_2.10/1.5.1/spark-core_2.10-1.5.1.jar!/org/apache/spark/Accumulable.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="58">
<caret line="114" column="27" lean-forward="false" selection-start-line="114" selection-start-column="27" selection-end-line="114" selection-end-column="27" />
<folding>
<element signature="e#2125#2126#0" expanded="true" />
<element signature="e#2154#2155#0" expanded="true" />
<element signature="e#2196#2197#0" expanded="true" />
<element signature="e#2232#2233#0" expanded="true" />
<element signature="e#2269#2270#0" expanded="true" />
<element signature="e#2304#2305#0" expanded="true" />
<element signature="e#2358#2359#0" expanded="true" />
<element signature="e#2401#2402#0" expanded="true" />
<element signature="e#2446#2447#0" expanded="true" />
<element signature="e#2487#2488#0" expanded="true" />
<element signature="e#2555#2556#0" expanded="true" />
<element signature="e#2615#2616#0" expanded="true" />
<element signature="e#2660#2661#0" expanded="true" />
<element signature="e#2701#2702#0" expanded="true" />
<element signature="e#2769#2770#0" expanded="true" />
<element signature="e#2829#2830#0" expanded="true" />
<element signature="e#2874#2875#0" expanded="true" />
<element signature="e#2915#2916#0" expanded="true" />
<element signature="e#2983#2984#0" expanded="true" />
<element signature="e#3043#3044#0" expanded="true" />
<element signature="e#3090#3091#0" expanded="true" />
<element signature="e#3133#3134#0" expanded="true" />
<element signature="e#3316#3317#0" expanded="true" />
<element signature="e#3359#3360#0" expanded="true" />
<element signature="e#3540#3541#0" expanded="true" />
<element signature="e#3581#3582#0" expanded="true" />
<element signature="e#3649#3650#0" expanded="true" />
<element signature="e#3709#3710#0" expanded="true" />
<element signature="e#3755#3756#0" expanded="true" />
<element signature="e#3797#3798#0" expanded="true" />
<element signature="e#3865#3866#0" expanded="true" />
<element signature="e#3926#3927#0" expanded="true" />
<element signature="e#3973#3974#0" expanded="true" />
<element signature="e#4016#4017#0" expanded="true" />
<element signature="e#4195#4196#0" expanded="true" />
<element signature="e#4234#4235#0" expanded="true" />
<element signature="e#4298#4299#0" expanded="true" />
<element signature="e#4354#4355#0" expanded="true" />
<element signature="e#4396#4397#0" expanded="true" />
<element signature="e#4434#4435#0" expanded="true" />
<element signature="e#4496#4497#0" expanded="true" />
<element signature="e#4550#4551#0" expanded="true" />
<element signature="e#4592#4593#0" expanded="true" />
<element signature="e#4630#4631#0" expanded="true" />
<element signature="e#4692#4693#0" expanded="true" />
<element signature="e#4746#4747#0" expanded="true" />
<element signature="e#4788#4789#0" expanded="true" />
<element signature="e#4826#4827#0" expanded="true" />
<element signature="e#4888#4889#0" expanded="true" />
<element signature="e#4942#4943#0" expanded="true" />
<element signature="e#4986#4987#0" expanded="true" />
<element signature="e#5026#5027#0" expanded="true" />
<element signature="e#5092#5093#0" expanded="true" />
<element signature="e#5150#5151#0" expanded="true" />
<element signature="e#5194#5195#0" expanded="true" />
<element signature="e#5234#5235#0" expanded="true" />
<element signature="e#5300#5301#0" expanded="true" />
<element signature="e#5358#5359#0" expanded="true" />
<element signature="e#5399#5400#0" expanded="true" />
<element signature="e#5436#5437#0" expanded="true" />
<element signature="e#5496#5497#0" expanded="true" />
<element signature="e#5548#5549#0" expanded="true" />
</folding>
<state relative-caret-position="135">
<caret line="62" column="0" lean-forward="false" selection-start-line="62" selection-start-column="0" selection-end-line="62" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="SessionAggrStatDaoImpl.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/impl/SessionAggrStatDaoImpl.java">
<file leaf-file-name="SessionAggrStatAccumulator.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/session/SessionAggrStatAccumulator.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="18" column="58" lean-forward="false" selection-start-line="18" selection-start-column="58" selection-end-line="18" selection-end-column="58" />
<state relative-caret-position="473">
<caret line="41" column="46" lean-forward="true" selection-start-line="41" selection-start-column="46" selection-end-line="41" selection-end-column="46" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#294#295#0" expanded="true" />
<element signature="e#326#327#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="SessionAggrDao.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/test/java/cn/edu/hust/dao/SessionAggrDao.java">
<file leaf-file-name="StringUtils.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/util/StringUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152">
<caret line="8" column="18" lean-forward="true" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="20" />
<state relative-caret-position="156">
<caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#247#248#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="DateUtils.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/util/DateUtils.java">
<file leaf-file-name="SessionAggrDao.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/test/java/cn/edu/hust/dao/SessionAggrDao.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="636">
<caret line="138" column="20" lean-forward="false" selection-start-line="138" selection-start-column="20" selection-end-line="138" selection-end-column="20" />
<folding />
<state relative-caret-position="152">
<caret line="8" column="18" lean-forward="false" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="20" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Constants.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/constant/Constants.java">
<file leaf-file-name="MockData.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/mockData/MockData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="587">
<caret line="55" column="48" lean-forward="false" selection-start-line="55" selection-start-column="31" selection-end-line="55" selection-end-column="48" />
<folding />
<state relative-caret-position="1177">
<caret line="93" column="49" lean-forward="false" selection-start-line="93" selection-start-column="49" selection-end-line="93" selection-end-column="49" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
@ -199,15 +139,15 @@
<option value="$PROJECT_DIR$/src/test/java/cn/edu/hust/utils/ParamUtilsTest.java" />
<option value="$PROJECT_DIR$/pom.xml" />
<option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/hust/session/SessionAggrStatAccumulator.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/hust/util/DateUtils.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/hust/constant/Constants.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/hust/session/UserVisitAnalyze.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/SessionAggrStatDao.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/hust/domain/SessionAggrStat.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/impl/SessionAggrStatDaoImpl.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/factory/DaoFactory.java" />
<option value="$PROJECT_DIR$/src/test/java/cn/edu/hust/dao/SessionAggrDao.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/hust/util/DateUtils.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/hust/session/SessionAggrStatAccumulator.java" />
<option value="$PROJECT_DIR$/src/main/java/cn/edu/hust/session/UserVisitAnalyze.java" />
</list>
</option>
</component>
@ -279,6 +219,7 @@
</navigator>
<panes>
<pane id="Scope" />
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<expand>
@ -312,43 +253,6 @@
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="hust" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="UserActionAnalyzePlatform" type="b2602c69:ProjectViewProjectNode" />
<item name="UserActionAnalyzePlatform" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="hust" type="462c0819:PsiDirectoryNode" />
<item name="dao" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="UserActionAnalyzePlatform" type="b2602c69:ProjectViewProjectNode" />
<item name="UserActionAnalyzePlatform" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="hust" type="462c0819:PsiDirectoryNode" />
<item name="dao" type="462c0819:PsiDirectoryNode" />
<item name="factory" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="UserActionAnalyzePlatform" type="b2602c69:ProjectViewProjectNode" />
<item name="UserActionAnalyzePlatform" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="hust" type="462c0819:PsiDirectoryNode" />
<item name="domain" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="UserActionAnalyzePlatform" type="b2602c69:ProjectViewProjectNode" />
<item name="UserActionAnalyzePlatform" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="hust" type="462c0819:PsiDirectoryNode" />
<item name="jdbc" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="UserActionAnalyzePlatform" type="b2602c69:ProjectViewProjectNode" />
<item name="UserActionAnalyzePlatform" type="462c0819:PsiDirectoryNode" />
@ -358,15 +262,6 @@
<item name="hust" type="462c0819:PsiDirectoryNode" />
<item name="session" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="UserActionAnalyzePlatform" type="b2602c69:ProjectViewProjectNode" />
<item name="UserActionAnalyzePlatform" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="hust" type="462c0819:PsiDirectoryNode" />
<item name="util" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="UserActionAnalyzePlatform" type="b2602c69:ProjectViewProjectNode" />
<item name="UserActionAnalyzePlatform" type="462c0819:PsiDirectoryNode" />
@ -380,30 +275,12 @@
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="UserActionAnalyzePlatform" type="b2602c69:ProjectViewProjectNode" />
<item name="UserActionAnalyzePlatform" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="hust" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="UserActionAnalyzePlatform" type="b2602c69:ProjectViewProjectNode" />
<item name="UserActionAnalyzePlatform" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="hust" type="462c0819:PsiDirectoryNode" />
<item name="dao" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="AndroidView" />
<pane id="Scratches" />
<pane id="PackagesPane" />
<pane id="AndroidView" />
</panes>
</component>
<component name="PropertiesComponent">
@ -439,7 +316,7 @@
</list>
</option>
</component>
<component name="RunManager" selected="JUnit.SessionAggrDao.test">
<component name="RunManager" selected="Application.UserVisitAnalyze">
<configuration default="true" type="Applet" factoryName="Applet">
<option name="HTML_USED" value="false" />
<option name="WIDTH" value="400" />
@ -649,8 +526,8 @@
</list>
<recent_temporary>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="JUnit.SessionAggrDao.test" />
<item index="1" class="java.lang.String" itemvalue="Application.UserVisitAnalyze" />
<item index="0" class="java.lang.String" itemvalue="Application.UserVisitAnalyze" />
<item index="1" class="java.lang.String" itemvalue="JUnit.SessionAggrDao.test" />
<item index="2" class="java.lang.String" itemvalue="JUnit.ParamUtilsTest.test2" />
<item index="3" class="java.lang.String" itemvalue="JUnit.TaskDaoTest.testDao" />
<item index="4" class="java.lang.String" itemvalue="JUnit.FastJsonTest.test1" />
@ -674,6 +551,7 @@
<workItem from="1529590333052" duration="2564000" />
<workItem from="1529630336674" duration="15098000" />
<workItem from="1529666057370" duration="13151000" />
<workItem from="1529717692529" duration="3409000" />
</task>
<task id="LOCAL-00001" summary="1.环境搭建完成&#10;2.相关的工具类编写完成&#10;3.配置文件管理类编写完成">
<created>1529592741848</created>
@ -725,7 +603,7 @@
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="31847000" />
<option name="totallyTimeSpent" value="35256000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="1440" height="900" extended-state="0" />
@ -738,14 +616,14 @@
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Java Enterprise" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32889965" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32904884" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32889965" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32889965" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.18097281" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.18311875" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24964234" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
@ -829,24 +707,161 @@
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="2" />
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/cn/edu/hust/session/UserVisitAnalyze.java</url>
<line>93</line>
<properties />
<option name="timeStamp" value="4" />
</line-breakpoint>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/cn/edu/hust/session/UserVisitAnalyze.java</url>
<line>309</line>
<properties />
<option name="timeStamp" value="6" />
</line-breakpoint>
</breakpoints>
<option name="time" value="7" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/conf/ConfigurationManager.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/session/UserVisitAnalyze.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#4667#4892#0" expanded="true" />
<element signature="e#4891#4892#0" expanded="true" />
<element signature="e#5122#7873#0" expanded="true" />
<element signature="e#7872#7873#0" expanded="true" />
<element signature="e#8093#8316#0" expanded="true" />
<element signature="e#8315#8316#0" expanded="true" />
<element signature="e#8569#9583#0" expanded="true" />
<element signature="e#9582#9583#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/domain/SessionAggrStat.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1596">
<caret line="114" column="27" lean-forward="false" selection-start-line="114" selection-start-column="27" selection-end-line="114" selection-end-column="27" />
<folding>
<element signature="e#2125#2126#0" expanded="true" />
<element signature="e#2154#2155#0" expanded="true" />
<element signature="e#2196#2197#0" expanded="true" />
<element signature="e#2232#2233#0" expanded="true" />
<element signature="e#2269#2270#0" expanded="true" />
<element signature="e#2304#2305#0" expanded="true" />
<element signature="e#2358#2359#0" expanded="true" />
<element signature="e#2401#2402#0" expanded="true" />
<element signature="e#2446#2447#0" expanded="true" />
<element signature="e#2487#2488#0" expanded="true" />
<element signature="e#2555#2556#0" expanded="true" />
<element signature="e#2615#2616#0" expanded="true" />
<element signature="e#2660#2661#0" expanded="true" />
<element signature="e#2701#2702#0" expanded="true" />
<element signature="e#2769#2770#0" expanded="true" />
<element signature="e#2829#2830#0" expanded="true" />
<element signature="e#2874#2875#0" expanded="true" />
<element signature="e#2915#2916#0" expanded="true" />
<element signature="e#2983#2984#0" expanded="true" />
<element signature="e#3043#3044#0" expanded="true" />
<element signature="e#3090#3091#0" expanded="true" />
<element signature="e#3133#3134#0" expanded="true" />
<element signature="e#3316#3317#0" expanded="true" />
<element signature="e#3359#3360#0" expanded="true" />
<element signature="e#3540#3541#0" expanded="true" />
<element signature="e#3581#3582#0" expanded="true" />
<element signature="e#3649#3650#0" expanded="true" />
<element signature="e#3709#3710#0" expanded="true" />
<element signature="e#3755#3756#0" expanded="true" />
<element signature="e#3797#3798#0" expanded="true" />
<element signature="e#3865#3866#0" expanded="true" />
<element signature="e#3926#3927#0" expanded="true" />
<element signature="e#3973#3974#0" expanded="true" />
<element signature="e#4016#4017#0" expanded="true" />
<element signature="e#4195#4196#0" expanded="true" />
<element signature="e#4234#4235#0" expanded="true" />
<element signature="e#4298#4299#0" expanded="true" />
<element signature="e#4354#4355#0" expanded="true" />
<element signature="e#4396#4397#0" expanded="true" />
<element signature="e#4434#4435#0" expanded="true" />
<element signature="e#4496#4497#0" expanded="true" />
<element signature="e#4550#4551#0" expanded="true" />
<element signature="e#4592#4593#0" expanded="true" />
<element signature="e#4630#4631#0" expanded="true" />
<element signature="e#4692#4693#0" expanded="true" />
<element signature="e#4746#4747#0" expanded="true" />
<element signature="e#4788#4789#0" expanded="true" />
<element signature="e#4826#4827#0" expanded="true" />
<element signature="e#4888#4889#0" expanded="true" />
<element signature="e#4942#4943#0" expanded="true" />
<element signature="e#4986#4987#0" expanded="true" />
<element signature="e#5026#5027#0" expanded="true" />
<element signature="e#5092#5093#0" expanded="true" />
<element signature="e#5150#5151#0" expanded="true" />
<element signature="e#5194#5195#0" expanded="true" />
<element signature="e#5234#5235#0" expanded="true" />
<element signature="e#5300#5301#0" expanded="true" />
<element signature="e#5358#5359#0" expanded="true" />
<element signature="e#5399#5400#0" expanded="true" />
<element signature="e#5436#5437#0" expanded="true" />
<element signature="e#5496#5497#0" expanded="true" />
<element signature="e#5548#5549#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/cn/edu/hust/dao/SessionAggrDao.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="114">
<caret line="8" column="18" lean-forward="true" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="20" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/impl/SessionAggrStatDaoImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="304">
<caret line="18" column="58" lean-forward="false" selection-start-line="18" selection-start-column="58" selection-end-line="18" selection-end-column="58" />
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/util/DateUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2451">
<caret line="138" column="20" lean-forward="false" selection-start-line="138" selection-start-column="20" selection-end-line="138" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/constant/Constants.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1045">
<caret line="55" column="48" lean-forward="false" selection-start-line="55" selection-start-column="31" selection-end-line="55" selection-end-column="48" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/conf/ConfigurationManager.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/conf.properties">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="95">
<caret line="5" column="17" lean-forward="false" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
@ -872,40 +887,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152">
<caret line="8" column="28" lean-forward="false" selection-start-line="8" selection-start-column="19" selection-end-line="8" selection-end-column="28" />
<folding>
<element signature="e#847#848#0" expanded="false" />
<element signature="e#876#877#0" expanded="false" />
<element signature="e#918#919#0" expanded="false" />
<element signature="e#954#955#0" expanded="false" />
<element signature="e#989#990#0" expanded="false" />
<element signature="e#1020#1021#0" expanded="false" />
<element signature="e#1068#1069#0" expanded="false" />
<element signature="e#1108#1109#0" expanded="false" />
<element signature="e#1145#1146#0" expanded="false" />
<element signature="e#1178#1179#0" expanded="false" />
<element signature="e#1230#1231#0" expanded="false" />
<element signature="e#1274#1275#0" expanded="false" />
<element signature="e#1310#1311#0" expanded="false" />
<element signature="e#1342#1343#0" expanded="false" />
<element signature="e#1392#1393#0" expanded="false" />
<element signature="e#1434#1435#0" expanded="false" />
<element signature="e#1471#1472#0" expanded="false" />
<element signature="e#1504#1505#0" expanded="false" />
<element signature="e#1556#1557#0" expanded="false" />
<element signature="e#1600#1601#0" expanded="false" />
<element signature="e#1635#1636#0" expanded="false" />
<element signature="e#1666#1667#0" expanded="false" />
<element signature="e#1714#1715#0" expanded="false" />
<element signature="e#1754#1755#0" expanded="false" />
<element signature="e#1791#1792#0" expanded="false" />
<element signature="e#1824#1825#0" expanded="false" />
<element signature="e#1876#1877#0" expanded="false" />
<element signature="e#1920#1921#0" expanded="false" />
<element signature="e#1956#1957#0" expanded="false" />
<element signature="e#1988#1989#0" expanded="false" />
<element signature="e#2038#2039#0" expanded="false" />
<element signature="e#2080#2081#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -913,7 +894,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="532">
<caret line="29" column="22" lean-forward="false" selection-start-line="29" selection-start-column="22" selection-end-line="29" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
@ -921,7 +901,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="19">
<caret line="1" column="11" lean-forward="false" selection-start-line="1" selection-start-column="11" selection-end-line="1" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
@ -1006,11 +985,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="434">
<caret line="28" column="4" lean-forward="false" selection-start-line="28" selection-start-column="4" selection-end-line="28" selection-end-column="4" />
<folding>
<element signature="imports" expanded="false" />
<element signature="e#919#1311#0" expanded="false" />
<element signature="e#1310#1311#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -1018,9 +992,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="133">
<caret line="7" column="13" lean-forward="false" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -1028,7 +999,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="912">
<caret line="52" column="9" lean-forward="true" selection-start-line="52" selection-start-column="9" selection-end-line="52" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
@ -1036,40 +1006,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="114">
<caret line="8" column="28" lean-forward="false" selection-start-line="8" selection-start-column="19" selection-end-line="8" selection-end-column="28" />
<folding>
<element signature="e#847#848#0" expanded="false" />
<element signature="e#876#877#0" expanded="false" />
<element signature="e#918#919#0" expanded="false" />
<element signature="e#954#955#0" expanded="false" />
<element signature="e#989#990#0" expanded="false" />
<element signature="e#1020#1021#0" expanded="false" />
<element signature="e#1068#1069#0" expanded="false" />
<element signature="e#1108#1109#0" expanded="false" />
<element signature="e#1145#1146#0" expanded="false" />
<element signature="e#1178#1179#0" expanded="false" />
<element signature="e#1230#1231#0" expanded="false" />
<element signature="e#1274#1275#0" expanded="false" />
<element signature="e#1310#1311#0" expanded="false" />
<element signature="e#1342#1343#0" expanded="false" />
<element signature="e#1392#1393#0" expanded="false" />
<element signature="e#1434#1435#0" expanded="false" />
<element signature="e#1471#1472#0" expanded="false" />
<element signature="e#1504#1505#0" expanded="false" />
<element signature="e#1556#1557#0" expanded="false" />
<element signature="e#1600#1601#0" expanded="false" />
<element signature="e#1635#1636#0" expanded="false" />
<element signature="e#1666#1667#0" expanded="false" />
<element signature="e#1714#1715#0" expanded="false" />
<element signature="e#1754#1755#0" expanded="false" />
<element signature="e#1791#1792#0" expanded="false" />
<element signature="e#1824#1825#0" expanded="false" />
<element signature="e#1876#1877#0" expanded="false" />
<element signature="e#1920#1921#0" expanded="false" />
<element signature="e#1956#1957#0" expanded="false" />
<element signature="e#1988#1989#0" expanded="false" />
<element signature="e#2038#2039#0" expanded="false" />
<element signature="e#2080#2081#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
@ -1077,7 +1013,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152">
<caret line="10" column="49" lean-forward="false" selection-start-line="10" selection-start-column="49" selection-end-line="10" selection-end-column="49" />
<folding />
</state>
</provider>
</entry>
@ -1085,19 +1020,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="247">
<caret line="13" column="63" lean-forward="false" selection-start-line="13" selection-start-column="63" selection-end-line="13" selection-end-column="63" />
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/mockData/MockData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="365">
<caret line="93" column="49" lean-forward="false" selection-start-line="93" selection-start-column="49" selection-end-line="93" selection-end-column="49" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
@ -1105,7 +1027,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="95">
<caret line="5" column="17" lean-forward="false" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
@ -1113,7 +1034,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="380">
<caret line="27" column="55" lean-forward="false" selection-start-line="27" selection-start-column="55" selection-end-line="27" selection-end-column="55" />
<folding />
</state>
</provider>
</entry>
@ -1121,7 +1041,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="95">
<caret line="5" column="9" lean-forward="false" selection-start-line="5" selection-start-column="9" selection-end-line="5" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
@ -1129,9 +1048,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="484">
<caret line="34" column="61" lean-forward="false" selection-start-line="34" selection-start-column="61" selection-end-line="34" selection-end-column="61" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
@ -1153,61 +1069,90 @@
<state split_layout="FIRST">
<first_editor relative-caret-position="661">
<caret line="331" column="90" lean-forward="false" selection-start-line="331" selection-start-column="90" selection-end-line="331" selection-end-column="90" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/util/StringUtils.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/SessionAggrStatDao.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266">
<caret line="62" column="25" lean-forward="false" selection-start-line="62" selection-start-column="25" selection-end-line="62" selection-end-column="25" />
<state relative-caret-position="95">
<caret line="5" column="47" lean-forward="false" selection-start-line="5" selection-start-column="47" selection-end-line="5" selection-end-column="47" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/session/SessionAggrStatAccumulator.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/factory/DaoFactory.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="587">
<caret line="46" column="82" lean-forward="false" selection-start-line="46" selection-start-column="82" selection-end-line="46" selection-end-column="82" />
<state relative-caret-position="247">
<caret line="19" column="44" lean-forward="false" selection-start-line="19" selection-start-column="44" selection-end-line="19" selection-end-column="44" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#294#295#0" expanded="true" />
<element signature="e#326#327#0" expanded="true" />
<element signature="e#394#395#0" expanded="true" />
<element signature="e#426#427#0" expanded="true" />
<element signature="e#425#426#0" expanded="false" />
<element signature="e#476#477#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/util/DateUtils.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/constant/Constants.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="636">
<caret line="138" column="20" lean-forward="false" selection-start-line="138" selection-start-column="20" selection-end-line="138" selection-end-column="20" />
<state relative-caret-position="125">
<caret line="45" column="63" lean-forward="true" selection-start-line="45" selection-start-column="63" selection-end-line="45" selection-end-column="63" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/constant/Constants.java">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/mockData/MockData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="587">
<caret line="55" column="48" lean-forward="false" selection-start-line="55" selection-start-column="31" selection-end-line="55" selection-end-column="48" />
<folding />
<state relative-caret-position="1177">
<caret line="93" column="49" lean-forward="false" selection-start-line="93" selection-start-column="49" selection-end-line="93" selection-end-column="49" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/SessionAggrStatDao.java">
<entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/src.zip!/java/lang/Long.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="95">
<caret line="5" column="47" lean-forward="false" selection-start-line="5" selection-start-column="47" selection-end-line="5" selection-end-column="47" />
<state relative-caret-position="171">
<caret line="802" column="0" lean-forward="false" selection-start-line="802" selection-start-column="0" selection-end-line="802" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/util/DateUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="470">
<caret line="142" column="26" lean-forward="false" selection-start-line="142" selection-start-column="26" selection-end-line="142" selection-end-column="26" />
<folding>
<element signature="e#486#642#0" expanded="true" />
<element signature="e#641#642#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/cn/edu/hust/dao/SessionAggrDao.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152">
<caret line="8" column="18" lean-forward="false" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="20" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/impl/SessionAggrStatDaoImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="18" column="58" lean-forward="false" selection-start-line="18" selection-start-column="58" selection-end-line="18" selection-end-column="58" />
<folding>
<element signature="imports" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/domain/SessionAggrStat.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="58">
<state relative-caret-position="443">
<caret line="114" column="27" lean-forward="false" selection-start-line="114" selection-start-column="27" selection-end-line="114" selection-end-column="27" />
<folding>
<element signature="e#2125#2126#0" expanded="true" />
@ -1276,51 +1221,73 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/impl/SessionAggrStatDaoImpl.java">
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/spark/spark-catalyst_2.10/1.5.1/spark-catalyst_2.10-1.5.1.jar!/org/apache/spark/sql/Row$class.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="18" column="58" lean-forward="false" selection-start-line="18" selection-start-column="58" selection-end-line="18" selection-end-column="58" />
<state relative-caret-position="135">
<caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1931#1932#0" expanded="true" />
<element signature="e#2816#2817#0" expanded="true" />
<element signature="e#2851#2852#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/factory/DaoFactory.java">
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/spark/spark-catalyst_2.10/1.5.1/spark-catalyst_2.10-1.5.1.jar!/org/apache/spark/sql/catalyst/expressions/GenericRow.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="247">
<caret line="19" column="44" lean-forward="false" selection-start-line="19" selection-start-column="44" selection-end-line="19" selection-end-column="44" />
<state relative-caret-position="325">
<caret line="170" column="0" lean-forward="false" selection-start-line="170" selection-start-column="0" selection-end-line="170" selection-end-column="0" />
<folding>
<element signature="e#425#426#0" expanded="true" />
<element signature="e#476#477#0" expanded="true" />
<element signature="e#4943#4944#0" expanded="true" />
<element signature="e#4982#4983#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/cn/edu/hust/dao/SessionAggrDao.java">
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/spark/spark-core_2.10/1.5.1/spark-core_2.10-1.5.1.jar!/org/apache/spark/Accumulable.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152">
<caret line="8" column="18" lean-forward="true" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="20" />
<state relative-caret-position="135">
<caret line="62" column="0" lean-forward="false" selection-start-line="62" selection-start-column="0" selection-end-line="62" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/util/StringUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="156">
<caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding>
<element signature="e#247#248#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/session/SessionAggrStatAccumulator.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="473">
<caret line="41" column="46" lean-forward="true" selection-start-line="41" selection-start-column="46" selection-end-line="41" selection-end-column="46" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#294#295#0" expanded="true" />
<element signature="e#326#327#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/session/UserVisitAnalyze.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4652">
<caret line="357" column="0" lean-forward="false" selection-start-line="357" selection-start-column="0" selection-end-line="357" selection-end-column="0" />
<state relative-caret-position="330">
<caret line="388" column="94" lean-forward="false" selection-start-line="388" selection-start-column="94" selection-end-line="388" selection-end-column="94" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#4629#4854#0" expanded="true" />
<element signature="e#4853#4854#0" expanded="true" />
<element signature="e#5084#7825#0" expanded="true" />
<element signature="e#7824#7825#0" expanded="true" />
<element signature="e#8045#8268#0" expanded="true" />
<element signature="e#8267#8268#0" expanded="true" />
<element signature="e#8521#9535#0" expanded="true" />
<element signature="e#9534#9535#0" expanded="true" />
<element signature="e#4667#4892#0" expanded="true" />
<element signature="e#4891#4892#0" expanded="true" />
<element signature="e#5122#7873#0" expanded="true" />
<element signature="e#7872#7873#0" expanded="true" />
<element signature="e#8093#8316#0" expanded="true" />
<element signature="e#8315#8316#0" expanded="true" />
<element signature="e#8569#9583#0" expanded="true" />
<element signature="e#9582#9583#0" expanded="true" />
</folding>
</state>
</provider>

@ -44,7 +44,7 @@ public class SessionAggrStatAccumulator implements AccumulatorParam<String>{
if(value!=null)
{
int newValue=Integer.valueOf(value)+1;
StringUtils.setFieldInConcatString(v1,"\\|",v2,String.valueOf(newValue));
return StringUtils.setFieldInConcatString(v1,"\\|",v2,String.valueOf(newValue));
}
return v1;
}

@ -4,12 +4,10 @@ import cn.edu.hust.conf.ConfigurationManager;
import cn.edu.hust.constant.Constants;
import cn.edu.hust.dao.TaskDao;
import cn.edu.hust.dao.factory.DaoFactory;
import cn.edu.hust.domain.SessionAggrStat;
import cn.edu.hust.domain.Task;
import cn.edu.hust.mockData.MockData;
import cn.edu.hust.util.DateUtils;
import cn.edu.hust.util.ParamUtils;
import cn.edu.hust.util.StringUtils;
import cn.edu.hust.util.ValidUtils;
import cn.edu.hust.util.*;
import com.alibaba.fastjson.JSONObject;
import org.apache.spark.Accumulator;
import org.apache.spark.AccumulatorParam;
@ -41,6 +39,7 @@ import java.util.Date;
public class UserVisitAnalyze {
public static void main(String[] args)
{
args=new String[]{"1"};
/**
* spark
*/
@ -67,6 +66,8 @@ public class UserVisitAnalyze {
// 重构,同时统计
Accumulator<String> sessionAggrStatAccumulator=context.accumulator("",new SessionAggrStatAccumulator());
//在进行accumulator之前需要aciton动作不然会为空
JavaPairRDD<String,String> filteredSessionRDD=filterSessionAndAggrStat(sesssionAggregateInfoRDD,jsonObject,sessionAggrStatAccumulator);
//session聚合统计统计出访问时长和访问步长的各个区间所占的比例
@ -88,7 +89,7 @@ public class UserVisitAnalyze {
*
*
*/
filteredSessionRDD.count();
//计算各个session占比,并写入MySQL
calculateAndPersist(sessionAggrStatAccumulator.value(),taskId);
//关闭spark上下文
@ -188,7 +189,7 @@ public class UserVisitAnalyze {
if(startTime==null)
startTime=actionTime;
if(endTime==null)
endTime=null;
endTime=actionTime;
if(actionTime.before(startTime))
{
startTime=actionTime;
@ -205,7 +206,7 @@ public class UserVisitAnalyze {
String searchKeywordsInfo=StringUtils.trimComma(searchKeywords.toString());
String clickCategoryIdsInfo=StringUtils.trimComma(clickCategoryIds.toString());
String info=Constants.FIELD_SESSIONID+"="+sessionId+"|"+Constants.FIELD_SERACH_KEYWORDS+"="+searchKeywordsInfo+"|"
+Constants.FIELD_CLICK_CATEGORYIDS+"="+clickCategoryIdsInfo+Constants.FIELD_VISIT_LENGTH+"="+visitLengtth+"|"
+Constants.FIELD_CLICK_CATEGORYIDS+"="+clickCategoryIdsInfo+"|"+Constants.FIELD_VISIT_LENGTH+"="+visitLengtth+"|"
+Constants.FIELD_STEP_LENGTH+"="+stepLength;
return new Tuple2<Long, String>(userId,info);
}
@ -355,5 +356,52 @@ public class UserVisitAnalyze {
private static void calculateAndPersist(String value,Long taskId) {
System.out.println(value);
Long sessionCount=Long.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.SESSION_COUNT));
//各个范围的访问时长
Double visit_Length_1s_3s=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.TIME_PERIOD_1s_3s));
Double visit_Length_4s_6s=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.TIME_PERIOD_4s_6s));
Double visit_Length_7s_9s=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.TIME_PERIOD_7s_9s));
Double visit_Length_10s_30s=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.TIME_PERIOD_10s_30s));
Double visit_Length_30s_60s=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.TIME_PERIOD_30s_60s));
Double visit_Length_1m_3m=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.TIME_PERIOD_1m_3m));
Double visit_Length_3m_10m=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.TIME_PERIOD_3m_10m));
Double visit_Length_10m_30m=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.TIME_PERIOD_10m_30m));
Double visit_Length_30m=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.TIME_PERIOD_30m));
//各个范围的访问步长
Double step_Length_1_3=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.STEP_PERIOD_1_3));
Double step_Length_4_6=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.STEP_PERIOD_4_6));
Double step_Length_7_9=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.STEP_PERIOD_7_9));
Double step_Length_10_30=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.STEP_PERIOD_10_30));
Double step_Length_30_60=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.STEP_PERIOD_30_60));
Double step_Length_60=Double.valueOf(StringUtils.getFieldFromConcatString(value,"\\|",Constants.STEP_PERIOD_60));
//访问时长对应的sesison占比
double visit_Length_1s_3s_ratio=NumberUtils.formatDouble(visit_Length_1s_3s/sessionCount,3);
double visit_Length_4s_6s_ratio=NumberUtils.formatDouble(visit_Length_4s_6s/sessionCount,3);
double visit_Length_7s_9s_ratio=NumberUtils.formatDouble(visit_Length_7s_9s/sessionCount,3);
double visit_Length_10s_30s_ratio=NumberUtils.formatDouble(visit_Length_10s_30s/sessionCount,3);
double visit_Length_30s_60s_ratio=NumberUtils.formatDouble(visit_Length_30s_60s/sessionCount,3);
double visit_Length_1m_3m_ratio=NumberUtils.formatDouble(visit_Length_1m_3m/sessionCount,3);
double visit_Length_3m_10m_ratio=NumberUtils.formatDouble(visit_Length_3m_10m/sessionCount,3);
double visit_Length_10m_30m_ratio=NumberUtils.formatDouble(visit_Length_10m_30m/sessionCount,3);
double visit_Length_30m_ratio=NumberUtils.formatDouble(visit_Length_30m/sessionCount,3);
//访问步长对应的session占比
double step_Length_1_3_ratio= NumberUtils.formatDouble(step_Length_1_3/sessionCount,3);
double step_Length_4_6_ratio=NumberUtils.formatDouble(step_Length_4_6/sessionCount,3);
double step_Length_7_9_ratio=NumberUtils.formatDouble(step_Length_7_9/sessionCount,3);
double c=NumberUtils.formatDouble(step_Length_10_30/sessionCount,3);
double step_Length_30_60_ratio=NumberUtils.formatDouble(step_Length_30_60/sessionCount,3);
double step_Length_60_ratio=NumberUtils.formatDouble(step_Length_60/sessionCount,3);
SessionAggrStat sessionAggrStat=new SessionAggrStat();
sessionAggrStat.set(taskId,sessionCount,visit_Length_1s_3s_ratio,visit_Length_4s_6s_ratio,
visit_Length_7s_9s_ratio,visit_Length_10s_30s_ratio,visit_Length_30s_60s_ratio,
visit_Length_1m_3m_ratio,visit_Length_3m_10m_ratio,visit_Length_10m_30m_ratio,visit_Length_30m_ratio
,step_Length_1_3_ratio,step_Length_4_6_ratio,step_Length_7_9_ratio,step_Length_7_9_ratio,step_Length_30_60_ratio,step_Length_60_ratio);
// 插入数据库
DaoFactory.getSessionAggrStatDao().insert(sessionAggrStat);
}
}

@ -16,6 +16,12 @@ public class DateUtils {
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static final SimpleDateFormat DATE_FORMAT =
new SimpleDateFormat("yyyy-MM-dd");
public static ThreadLocal<SimpleDateFormat> simpleDateFormatThreadLocal=new ThreadLocal<SimpleDateFormat>(){
@Override
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
};
/**
*
@ -132,7 +138,9 @@ public class DateUtils {
public static Date parseTime(String time)
{
try {
return TIME_FORMAT.parse(time);
Date result=simpleDateFormatThreadLocal.get().parse(time);
simpleDateFormatThreadLocal.remove();
return result;
} catch (ParseException e) {
e.printStackTrace();
}

Loading…
Cancel
Save