当前位置: 首页 > news >正文

专业网站开发工具网站广告条素材

专业网站开发工具,网站广告条素材,wordpress获取分类下文章列表,帮忙推广的平台一、数据清洗,你都清洗什么?或者说 ETL 你是怎么做的? 我在这个项目主要清洗的式日志数据,日志数据传过来的json格式 去除掉无用的字段,过滤掉json格式不正确的脏数据 过滤清洗掉日志中缺少关键字段的数据&#xff…

一、数据清洗,你都清洗什么?或者说 ETL 你是怎么做的?

我在这个项目主要清洗的式日志数据,日志数据传过来的json格式

去除掉无用的字段,过滤掉json格式不正确的脏数据

过滤清洗掉日志中缺少关键字段的数据(如缺少用户名,设备型号,等)

过滤清洗掉日志中不符合时间段的记录(由于app上日志上报有延迟等)

对用户的特殊信息进行脱敏,身份证,手机号等

将简单的的数据标准化(用户传过来的数据,经清洗后写入表格)

将重复的数据去重等(如session分割)

二、hive 和 spark 如何关联,关联过程中容易出现什么问题?

如何在DataGrip上使用hive的数据源编写Spark代码_datagrip配置spark-CSDN博客

如何关联:

启动hive的HiveMetaStore服务(hive-server-manager.sh start metastore)

设置spark的日志级别

启动spark的链接服务(10000端口hive在用,可以将spark的端口更改为10001)

遇到的问题:

hive中的数据库和sparksql中的数据库不是同一个,spark指向了本地的而不是集群的hdfs

链接之后,创建库表,上传数据后去集群的mysql中查看dbs中看这个库指向的是hdfs还是本地

需要修改hive的配置文件,然后复制到sparkconf然后分发集群重启就行

三、hive 如何处理 json 数据?

两个方法:

1、将数据视为无结构的string,将传入的json数据看作一条数据然后在hive建表上传

然后使用get_json_object函数

select get_json_object(line,'$.account') from test_json limit 10;

2、json格式进行映射(这需要jsonSerde的支持),创建表的时候加上ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe',然后就可读json数据,load就行

hdfs上的数据,导入表中一次后,直接删除,或者叫做移动,所以下一次再导入会说没有这个文件。

3、json_tuple() 可以一次提取多个字段。

select json_tuple('{"action_time":1682219447,"monitor_id":"0001","camera_id":"1","car":"豫A12345","speed":34.5,"road_id":"01","area_id":"20"}','camera_id','road_id','area_id','speed') as (cameraid,roadid,areaid,speed);

四、你的这个 spark 离线数仓的项目的项目架构图,请简单描述一下

数据经flum的抽取,将各个埋点的日志数据传入hive(进行处理sparksql处理)作为ods层,然后对ods层的数据进行清洗脱敏等然后当作tmp临时表,然后将tmp表进行合并生成dwd公共数据明细层,然后以dwd为基础,按天进行轻度汇总,粒度是一行信息代表的行为,例如一天下单的次数,以dws数据层为基础,按主题进行汇总,一个项目可以分为很多的主题,进行汇总,例如某个用户从注册开始到现在下单次数等,ads为各种统计表提供数据。

其中要对整个流程进行调度,监控,权限管理。

五、编写完成的 spark 程序,如何运行?

1、在本地模式运行

编写好的Python代码直接在本地运行

2、在集群环境中运行

编写完成的pyspark程序,上传到虚拟机,要把依赖的文件也上传上去,我这里上传的地址在/home/spark-shell中,然后将jsonsed的依赖jars包拉进去,然后sumit提交spark任务,传入参数,就能运行,在正常的情况下,要把每一py程序写成一个shell脚本,然后任务调度器每天定时调度shell脚本传入日期数据

spark-submit    \
--master yarn  \
--deploy-mode client \
--conf "spark.pyspark.driver.python=/opt/installs/anaconda3/bin/python3" \
--conf "spark.pyspark.python=/opt/installs/anaconda3/bin/python3" \
--driver-memory 512m \
--executor-memory 512m \
--executor-cores 1 \
--num-executors 2 \
--queue default  \
/home/spark-shell/AppLogWash.py $dt

六、spark 本地化运行,提示缺包怎么办?集群提示缺包怎么办?

spark本地化运行,提示缺包:

将所缺少的包导入到External libraries下的 site-packages\pyspark\jars下,重启服务

集群提示缺包 解决方案:

1、运行时,添加jar包依赖,需要使用如下方式:

--jars /opt/installs/hive/lib/hive-serde-3.1.2.jar,/opt/installs/hive/lib/hive-common-3.1.2.jar

2、将两个jar包,提交到hdfs上的spark的jars下:

hdfs dfs -put /opt/installs/hive/lib/hive-serde-3.1.2.jar /spark/jars

hdfs dfs -put /opt/installs/hive/lib/hive-common-3.1.2.jar /spark/jars

七、你这个项目中的 session 分割是什么?怎么做?为什么 要做这个呢?

分割的是用户在App的会话信息。因为APP的session往往持续时间比较长,不像浏览器那样,有固定的30分钟,所以对APP上的行为进行会话内的分析是不准确的 当一个行为发生时间相比较上一个行为的时间超过10分钟,则认为用户刚才将APP后台或者退出了,则从该行为开始属于一个新的会话。

怎么做?

先创建一张原始表,将分割前的数据导入进去。

创建一张表,存储session切割之后的结果。

创建一个类AppLogSessionSplit,通过sparksql完成session会话切割操作

每次开发,可以先使用hive 将sql编写正确,然后再在spark中粘贴。

为什么?

通过对用户的行为按照时间进行session会话的切割,可以对设备的行为按照会话级别粒度进行分析,例如一个用户在一次会话中从哪进入了产品,又从哪退出了产品,在一次会话中用户的停留时长,在一次会话中用户访问了多少个页面等

http://www.yayakq.cn/news/984439/

相关文章:

  • 多域名指向同一网站软考中级科目难度排行
  • 大连网络建站公司分析深圳品牌火锅店加盟
  • 优秀网站菜单wordpress回复插件
  • 医疗网站怎么做优化江苏做网站的公司
  • 专业图片在线制作网站网站建设公司需要申请icp吗
  • 官方网站的要素中国疫苗接种率
  • 网站编辑知识网站源码怎么做网站
  • 宁国网站建设企业名称注册查询
  • 公司网站建设工作百度知道官网首页登录入口
  • 网站建设的价位个人开网站
  • 黄石网站开发外贸网站建设工作室
  • 做网站p图工具响应式网站 乐云seo品牌
  • 西安网站开开发wordpress添加侧栏广告
  • 天津自己制作网站企业培训机构排名
  • 直播app软件开发定制seo网站优化培训价格
  • 焦作市网站建设科技海淀手机网站建设
  • 做网站 信科网站建设便宜深圳杰恩创意设计有限公司网站
  • 蛋糕网站源码企业网站建设中图片优化的方法
  • 武隆集团网站建设外贸推广
  • 福田公司旗下子公司seo专员简历
  • 百度站长工具平台登录怎么开发网赌软件
  • 做网站公司排名多少钱门户网站开发项目
  • 零基础学网站建设 知乎如何建设网站pdf下载
  • 郑州东区网站建设介休做网站
  • 做淘宝网站报告财税公司网站开发
  • 职业教育培训网站个人新闻类网站模板免费下载
  • 南京 网站开发什么待遇啊产品设计招聘
  • 建站之星wordpress用户注册文件
  • 高端网站建设服务商wordpress连阿里云域名
  • 长沙银狐做网站石家庄常规网站建设私人定做