1.环境搭建完成11

2.相关的工具类编写完成1
3.配置文件管理类编写完成1
zxr
劝酒千百 9 months ago
parent 4089d89827
commit a33178593c

@ -4,7 +4,7 @@
<option name="autoReloadType" value="ALL" />
</component>
<component name="ChangeListManager">
<list default="true" id="a7505764-040b-48e2-b2fc-8c5b579e595f" name="Default" comment="1.环境搭建完成11&#10;2.相关的工具类编写完成11&#10;3.配置文件管理类编写完成11">
<list default="true" id="a7505764-040b-48e2-b2fc-8c5b579e595f" name="Default" comment="1.环境搭建完成1&#10;2.相关的工具类编写完成1&#10;3.配置文件管理类编写完成1">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/cn/edu/hust/session/UserVisitAnalyze.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/cn/edu/hust/session/UserVisitAnalyze.java" afterDir="false" />
</list>
@ -477,7 +477,7 @@
<workItem from="1734349398416" duration="1738000" />
<workItem from="1734352550638" duration="1153000" />
<workItem from="1734354068325" duration="860000" />
<workItem from="1734354940766" duration="3411000" />
<workItem from="1734354940766" duration="5212000" />
</task>
<task id="LOCAL-00001" summary="1.环境搭建完成&#10;2.相关的工具类编写完成&#10;3.配置文件管理类编写完成">
<created>1529592741848</created>
@ -557,7 +557,15 @@
<option name="project" value="LOCAL" />
<updated>1734357525655</updated>
</task>
<option name="localTasksCounter" value="11" />
<task id="LOCAL-00011" summary="1.环境搭建完成1&#10;2.相关的工具类编写完成1&#10;3.配置文件管理类编写完成1">
<option name="closed" value="true" />
<created>1734358371283</created>
<option name="number" value="00011" />
<option name="presentableId" value="LOCAL-00011" />
<option name="project" value="LOCAL" />
<updated>1734358371283</updated>
</task>
<option name="localTasksCounter" value="12" />
<servers />
</component>
<component name="TestHistory">
@ -680,7 +688,8 @@
<MESSAGE value="1.环境搭建完成&#10;2.相关的工具类编写完成&#10;3.配置文件管理类编写完成" />
<MESSAGE value="1.环境搭建完成&#10;2.相关的工具类编写完成11&#10;3.配置文件管理类编写完成11" />
<MESSAGE value="1.环境搭建完成11&#10;2.相关的工具类编写完成11&#10;3.配置文件管理类编写完成11" />
<option name="LAST_COMMIT_MESSAGE" value="1.环境搭建完成11&#10;2.相关的工具类编写完成11&#10;3.配置文件管理类编写完成11" />
<MESSAGE value="1.环境搭建完成1&#10;2.相关的工具类编写完成1&#10;3.配置文件管理类编写完成1" />
<option name="LAST_COMMIT_MESSAGE" value="1.环境搭建完成1&#10;2.相关的工具类编写完成1&#10;3.配置文件管理类编写完成1" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/cn/edu/hust/conf/ConfigurationManager.java">

@ -323,27 +323,82 @@ public class UserVisitAnalyze {
* @param taskParam
* @return
*/
//getActionRDD 方法
private static JavaRDD<Row> getActionRDD(SQLContext sc, JSONObject taskParam)
{
//获取开始时间和结束时间:
//从 taskParam 中获取开始时间 startTime 和结束时间 endTime。
// ParamUtils.getParam 方法用于从 JSONObject 中获取参数值。
String startTime=ParamUtils.getParam(taskParam,Constants.PARAM_STARTTIME);
String endTime=ParamUtils.getParam(taskParam,Constants.PARAM_ENDTIME);
//构建SQL查询语句
// 查询表 user_visit_action 中 date 字段在 startTime 和 endTime 之间的所有记录。
String sql="select *from user_visit_action where date>='"+startTime+"' and date<='"+endTime+"'";
//执行SQL查询并获取DataFrame
//使用 SQLContext 执行SQL查询获取查询结果的 DataFrame。
DataFrame df=sc.sql(sql);
//将DataFrame转换为JavaRDD<Row>
//方便后续的RDD操作。
return df.javaRDD();
}
/**
*
* SQLSQL访
* DataFrame JavaRDD<Row>便
*/
/**
* PairSessionIdValueRow
* @param sessionRangeDate
* @return
*/
private static JavaPairRDD<String,Row> getSessonInfoPairRDD(JavaRDD<Row> sessionRangeDate) {
return sessionRangeDate.mapToPair(new PairFunction<Row, String, Row>() {
//getSessonInfoPairRDD 方法
//定义方法签名:
//定义一个静态方法 getSessonInfoPairRDD该方法接受一个 JavaRDD<Row> 类型的参数 sessionRangeDate
// 并返回一个 JavaPairRDD<String, Row>。
private static JavaPairRDD<String,Row> getSessonInfoPairRDD(JavaRDD<Row> sessionRangeDate) {
//使用 mapToPair 方法:
//使用 mapToPair 方法将 JavaRDD<Row> 转换为 JavaPairRDD<String, Row>。
// mapToPair 方法接受一个 PairFunction 实现类,
// 该实现类用于将每个 Row 对象转换为一个键值对 Tuple2<String, Row>。
return sessionRangeDate.mapToPair(new PairFunction<Row, String, Row>() {
@Override
//实现 PairFunction
//实现 PairFunction 接口的 call 方法。
// call 方法会接受一个 Row 对象作为输入,并返回一个 Tuple2<String, Row>。
public Tuple2<String, Row> call(Row row) throws Exception {
//构造 Tuple2 对象:
//从 Row 对象中提取指定列的值这里是第3列
// 作为键 String并将整个 Row 对象作为值 Row返回一个 Tuple2<String, Row>。
return new Tuple2<String, Row>(row.getString(2),row);
}
});
/**
*
* 使 mapToPair Row Tuple2<String, Row>
* Row 3 Row
* Row 便
* getSessonInfoPairRDD JavaRDD<Row> JavaPairRDD<String, Row>
* Row sessionId
* Row
* sessionId
*/
}
/**
@ -352,6 +407,12 @@ public class UserVisitAnalyze {
* @param sessionInfoPairRDD
* @return
*/
//方法签名:
//定义一个静态方法 aggregateBySessionId
// 该方法接受一个 SQLContext
// 和一个 JavaPairRDD<String, Row> 类型的参数 sessionInfoPairRDD
// 并返回一个 JavaPairRDD<String, String>。
private static JavaPairRDD<String,String> aggregateBySessionId(SQLContext sc, JavaPairRDD<String, Row> sessionInfoPairRDD) {
/**
* map
@ -368,8 +429,15 @@ public class UserVisitAnalyze {
/**
* sessionId
*/
//根据 sessionId 进行分组:
//使用 groupByKey 方法将 JavaPairRDD<String, Row> 按 sessionId 分组,
// 得到一个 JavaPairRDD<String, Iterable<Row>>
// 其中键为 sessionId值为具有相同 sessionId 的所有 Row 对象的迭代器。
JavaPairRDD<String,Iterable<Row>> sessionActionGrouped=sessionInfoPairRDD.groupByKey();
//映射生成键值对:
//使用 mapToPair 方法将每个 Tuple2<String, Iterable<Row>> 转换为一个 Tuple2<Long, String>。
// 具体来说,键为 Row 对象中的 userId值为生成的字符串信息。
JavaPairRDD<Long,String> sessionPartInfo=sessionActionGrouped.mapToPair(new PairFunction<Tuple2<String, Iterable<Row>>, Long, String>() {
@Override
public Tuple2<Long, String> call(Tuple2<String, Iterable<Row>> stringIterableTuple2) throws Exception {

Loading…
Cancel
Save