开发者社区> 问答> 正文

sqoop将hdfs下的数据导入到mysql如何去重

sqoop执行的脚本我是这样写的
sqoop export --connect jdbc:mysql://localhost:3306/movie --username root --password welcome1 --table movieRecommend --fields-terminated-by ',' --export-dir /recommendout
recommendout是我mapreduce程序处理后的输出目录,包括用户id,电影id,经mapreduce计算处理得出的该电影对该用户的推荐度。mysql中的表movieRecommend的字段包括user_id,movie_id,rating,没有设置主键。正常的结果是最终mysql中每个用户对每个商品有唯一的一个推荐度,即(用户id+电影id)字段应该是unique的。但mapreduce和sqoop的job是定时多次执行的,这样每次执行,recommendout目录中的数据都会导入到mysql中,造成重复。初次接触hadoop平台和其组件,请问这种问题是怎么解决的?

展开
收起
蛮大人123 2016-02-07 11:36:35 2810 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    为什么不在mysql中设置主键呢?sqoop是多map task完成的,很难在sqoop端去重

    2019-07-17 18:38:57
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
百问百答-RDS (上) 立即下载
MySQL 技术大全:开发、优化与运维实战 立即下载
海量数据分布式存储——Apache HDFS之最新进展 立即下载

相关镜像