精华内容
下载资源
问答
  • 需求:有的文章关联多张图片有的文章无关联图片,怎么查询时候把所有文章都查询出来呢? 大家都是怎么做呢? 我现在做法比较笨[img=...
  • 两个线程有关联,请问怎样设计才能让两个线程循环起来 ![图片说明](https://img-ask.csdn.net/upload/202009/02/1599050607_175765.png)
  • 要删除没有用到的图片资源,点击“Project”-“xxx Properties ...”菜单,打开项目属性窗口,左侧点“Resources”,再点右侧标“Strings”的下拉菜单选择“Images”就看到你工程里面被导入的图片资源,这里...
    如果资源图片被设置到组件上了,先找出相关组件去掉关联。
    要删除没有用到的图片资源,点击“Project”-“xxx Properties ...”菜单,打开项目属性窗口,左侧点“Resources”,再点右侧标有“Strings”的下拉菜单选择“Images”就看到你工程里面被导入的图片资源,这里的图片如果没有使用到的,可以直接删除。删除完这里的之后就可以通过项目资源管理器或直接到项目路径下的Resources文件夹下安全的删除你想删除的图片了。
    展开全文
  • 1.概述  最近在和人交流时谈到数据相似度和... 目前这样一个背景,在一大堆数据中,里面存放着图片的相关信息,如下图所示:  上图只是给大家列举一个示例数据格式,第一列表示自身图片,第二、第三......等

    1.概述

      最近在和人交流时谈到数据相似度和数据共性问题,而刚好在业务层面有类似的需求,今天和大家分享这类问题的解决思路,分享目录如下所示:

    • 业务背景
    • 编码实践
    • 预览截图

      下面开始今天的内容分享。

    2.业务背景

      目前有这样一个背景,在一大堆数据中,里面存放着图片的相关信息,如下图所示:

      上图只是给大家列举的一个示例数据格式,第一列表示自身图片,第二、第三......等列表示与第一列相关联的图片信息。那么我们从这堆数据中如何找出他们拥有相同图片信息的图片。

    2.1 实现思路

      那么,我们在明确了上述需求后,下面我们来分析它的实现思路。首先,我们通过上图所要实现的目标结果,其最终计算结果如下所示:

    pic_001pic_002 pic_003,pic_004,pic_005
    pic_001pic_003 pic_002,pic_005
    pic_001pic_004 pic_002,pic_005
    pic_001pic_005 pic_002,pic_003,pic_004
    ......

      结果如上所示,找出两两图片之间的共性图片,结果未列完整,只是列举了部分,具体结果大家可以参考截图预览的相关信息。

      下面给大家介绍解决思路,通过观察数据,我们可以发现在上述数据当中,我们要计算图片两两的共性图片,可以从关联图片入手,在关联图片中我们可以找到共性图片的关联信息,比如:我们要计算pic001pic002图片的共性图片,我们可以在关联图片中找到两者(pic001pic002组合)后对应的自身图片(key),最后在将所有的key求并集即为两者的共性图片信息,具体信息如下图所示:

      通过上图,我们可以知道具体的实现思路,步骤如下所示:

    • 第一步:拆分数据,关联数据两两组合作为Key输出。
    • 第二步:将相同Key分组,然后求并集得到计算结果。

      这里使用一个MR来完成此项工作,在明白了实现思路后,我们接下来去实现对应的编码。

    3.编码实践

    • 拆分数据,两两组合。
    复制代码
    public static class PictureMap extends Mapper<LongWritable, Text, Text, Text> {
    
            @Override
            protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, Text>.Context context)
                    throws IOException, InterruptedException {
                StringTokenizer strToken = new StringTokenizer(value.toString());
                Text owner = new Text();
    
                Set<String> set = new TreeSet<String>();
    
                owner.set(strToken.nextToken());
                while (strToken.hasMoreTokens()) {
                    set.add(strToken.nextToken());
                }
    
                String[] relations = new String[set.size()];
                relations = set.toArray(relations);
    
                for (int i = 0; i < relations.length; i++) {
                    for (int j = i + 1; j < relations.length; j++) {
                        String outPutKey = relations[i] + relations[j];
                        context.write(new Text(outPutKey), owner);
                    }
    
                }
            }
        }
    复制代码
    • 按Key分组,求并集
    复制代码
    public static class PictureReduce extends Reducer<Text, Text, Text, Text> {
    
            @Override
            protected void reduce(Text key, Iterable<Text> values, Reducer<Text, Text, Text, Text>.Context context)
                    throws IOException, InterruptedException {
                String common = "";
                for (Text val : values) {
                    if (common == "") {
                        common = val.toString();
                    } else {
                        common = common + "," + val.toString();
                    }
                }
                context.write(key, new Text(common));
            }
        }
    复制代码
    • 完整示例
    复制代码
    package cn.hadoop.hdfs.example;
    
    import java.io.IOException;
    import java.util.Set;
    import java.util.StringTokenizer;
    import java.util.TreeSet;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.conf.Configured;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.io.LongWritable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Job;
    import org.apache.hadoop.mapreduce.Mapper;
    import org.apache.hadoop.mapreduce.Reducer;
    import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
    import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
    import org.apache.hadoop.util.Tool;
    import org.apache.hadoop.util.ToolRunner;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import cn.hadoop.hdfs.util.HDFSUtils;
    import cn.hadoop.hdfs.util.SystemConfig;
    
    /**
     * @Date Aug 31, 2015
     *
     * @Author dengjie
     *
     * @Note Find picture relations
     */
    public class PictureRelations extends Configured implements Tool {
    
        private static Logger log = LoggerFactory.getLogger(PictureRelations.class);
        private static Configuration conf;
    
        static {
            String tag = SystemConfig.getProperty("dev.tag");
            String[] hosts = SystemConfig.getPropertyArray(tag + ".hdfs.host", ",");
            conf = new Configuration();
            conf.set("fs.defaultFS", "hdfs://cluster1");
            conf.set("dfs.nameservices", "cluster1");
            conf.set("dfs.ha.namenodes.cluster1", "nna,nns");
            conf.set("dfs.namenode.rpc-address.cluster1.nna", hosts[0]);
            conf.set("dfs.namenode.rpc-address.cluster1.nns", hosts[1]);
            conf.set("dfs.client.failover.proxy.provider.cluster1",
                    "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider");
            conf.set("fs.hdfs.impl", org.apache.hadoop.hdfs.DistributedFileSystem.class.getName());
            conf.set("fs.file.impl", org.apache.hadoop.fs.LocalFileSystem.class.getName());
        }
    
        public static class PictureMap extends Mapper<LongWritable, Text, Text, Text> {
    
            @Override
            protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, Text>.Context context)
                    throws IOException, InterruptedException {
                StringTokenizer strToken = new StringTokenizer(value.toString());
                Text owner = new Text();
    
                Set<String> set = new TreeSet<String>();
    
                owner.set(strToken.nextToken());
                while (strToken.hasMoreTokens()) {
                    set.add(strToken.nextToken());
                }
    
                String[] relations = new String[set.size()];
                relations = set.toArray(relations);
    
                for (int i = 0; i < relations.length; i++) {
                    for (int j = i + 1; j < relations.length; j++) {
                        String outPutKey = relations[i] + relations[j];
                        context.write(new Text(outPutKey), owner);
                    }
    
                }
            }
        }
    
        public static class PictureReduce extends Reducer<Text, Text, Text, Text> {
    
            @Override
            protected void reduce(Text key, Iterable<Text> values, Reducer<Text, Text, Text, Text>.Context context)
                    throws IOException, InterruptedException {
                String common = "";
                for (Text val : values) {
                    if (common == "") {
                        common = val.toString();
                    } else {
                        common = common + "," + val.toString();
                    }
                }
                context.write(key, new Text(common));
            }
        }
    
        public int run(String[] args) throws Exception {
            final Job job = Job.getInstance(conf);
            job.setJarByClass(PictureMap.class);
            job.setMapperClass(PictureMap.class);
            job.setMapOutputKeyClass(Text.class);
            job.setMapOutputValueClass(Text.class);
            job.setReducerClass(PictureReduce.class);
            job.setOutputKeyClass(Text.class);
            job.setOutputValueClass(Text.class);
            FileInputFormat.setInputPaths(job, args[0]);
            FileOutputFormat.setOutputPath(job, new Path(args[1]));
            int status = job.waitForCompletion(true) ? 0 : 1;
            return status;
        }
    
        public static void main(String[] args) {
            try {
                if (args.length != 1) {
                    log.warn("args length must be 1 and as date param");
                    return;
                }
                String tmpIn = SystemConfig.getProperty("hdfs.input.path.v2");
                String tmpOut = SystemConfig.getProperty("hdfs.output.path.v2");
                String inPath = String.format(tmpIn, "t_pic_20150801.log");
                String outPath = String.format(tmpOut, "meta/" + args[0]);
    
                // bak dfs file to old
                HDFSUtils.bak(tmpOut, outPath, "meta/" + args[0] + "-old", conf);
    
                args = new String[] { inPath, outPath };
                int res = ToolRunner.run(new Configuration(), new PictureRelations(), args);
                System.exit(res);
            } catch (Exception ex) {
                ex.printStackTrace();
                log.error("Picture relations task has error,msg is" + ex.getMessage());
            }
    
        }
    
    }
    复制代码

    4.截图预览

      关于计算结果,如下图所示:

    5.总结

      本篇博客只是从思路上实现了图片关联计算,在数据量大的情况下,是有待优化的,这里就不多做赘述了,后续有时间在为大家分析其中的细节。

    6.结束语

      这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!

    联系方式: 
    邮箱:smartdengjie@gmail.com 
    QQ群(Hadoop - 董的博客2):306184597 (已满) 
    QQ群(Hadoop - 交流社区1):424769183 
    温馨提示:请大家加群的时候写上加群理由(姓名+公司/学校),方便管理员审核,谢谢! 

    热爱生活,享受编程,与君共勉!

    展开全文
  • ![图片说明](https://img-ask.csdn.net/upload/201912/25/1577238243_42992.png) role_info 和role_module这两个表,应该怎么写
  • ![图片说明](https://img-ask.csdn.net/upload/201909/10/1568109211_910087.png) ![图片说明]...如上,图1对图2数据干扰,造成了相似波动,用什么样方式可以去掉图2中波动?
  • 比较推荐网图加载方法,解决了Tag方法中对潜在任务取消,从而在效率上很大提升 主要思路: 1、BitmapWorkTask持有ImageView弱引用对象 2、ImageView通过AsyncDrawable间接持有BitmapWorkTask对象 主要判断...
  • 2、先删除本地关联的仓库地址,然后关联新的仓库地址 git remote rm origin git remote add origin url 3、直接修改配置文件 在已经关联远程仓库的项目中的 .git 文件夹下会一个 config 文件,直接修改 config ...

    1、直接修改关联远程仓库的地址

    git remote set-url origin url
    

    2、先删除本地关联的仓库地址,然后关联新的仓库地址

    git remote rm origin
    git remote add origin url
    

    3、直接修改配置文件

    在已经关联远程仓库的项目中的 .git 文件夹下会有一个 config 文件,直接修改 config 文件中的 url 地址即可。
    

    在这里插入图片描述

    Tips:查看远程仓库地址的命令是:git remote -v

    展开全文
  • 以下是我在网络搜索的txt文件关联的代码,测试后可以用,可是改成JPG与GIF就无法用了,注册表里的项目很多,不知道JPG与GIF的代码怎么写,最好测试后可以用的全代码发一下啊,我的是XP的系统 ...
  • VC .NET 创建文件关联的例子,类似于创建程序的快捷方式,不同本程序创建的关联,主要是让用户自己选择某个文件用什么程序打开,现在很多的播放器、看图程序在安装后,都会自动关联到对应所支持的文件,比如播放器...
  • 在以下总结一系列三个双眼竞争实验中测试了价值和唤醒对意识视觉意识支配地位影响: 实验 1 - 名人面Kong 实验 2 - 政客面Kong 实验 3 - IAPS 图像(国际情感图片系统;Lang 等人,1997) 作者 Tom Salomon ...
  • 快速命名文件,看到人把这种方法当做资源上传,竟然还要分,所以本人就把这种很简单方法分享给大家,是三张图片,一看就懂
  • a表中总共5条数据,b表中与之完全匹配关联的字段也只有5条。但是进行a left join b关联查询的时候,最终结果显示6条数据。数据差异是“207”的这条数据关联出2条来,但是第二条数据并不是207,而且“207ea6c...
  • \usepackage{amsmath}%数学包,一般公式编辑就加这个,命令多。\numberwithin{equation}{section}%必须amsmath\numberwithin{figure}{section}\numberwithin{table}{section} 在XeLaTex模式下导言区,添加...
    \usepackage{amsmath}%数学包,一般有公式编辑就加这个,命令多。
    \numberwithin{equation}{section}%必须有amsmath
    \numberwithin{figure}{section}
    \numberwithin{table}{section}

    在XeLaTex的模式下的导言区,添加上述内容,然后直接交叉引用。

    先添加好\label{name} 再使用 \ref{ } 来引用。

    \begin{figure}[!h]
    	\centering
    	\includegraphics [scale=0.5]{7.png}
    	\caption{程序流程图}
    	\label{fig:7}
    \end{figure}

    展开全文
  • 这里写自定义目录标题Windchill 开发 根据实例对象查询关联的ECN功能快捷键合理的创建标题,助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容...
  • 两张张表,anime_user和anime_role,user表一个外键引用role表,然后创建两个实体类 ![图片说明](https://img-ask.csdn.net/upload/201706/06/1496722930_250898.png) ...两个方法在关联之前都分别测试过了没有问题
  • 假设现在这么两个表,要做关联查询,查询出每个乡镇每个年龄段driver多少个,该怎么写sql语句 ![图片说明](https://img-ask.csdn.net/upload/201810/12/1539324366_415532.png) 结果是这种
  • 计算机领域,也一个类似技术,那便是CDN。CDN,相信你对这个名词一点也不陌生,我们经常会说,把某些文件图片上传到CDN,从而让用户访问更加迅速,让自己服务器压力减小。 CDN全称为内容分发网络(Content ...
  • mysql咋同时添加两张表中数据并且两张表关联 一张表要循环 添加![图片说明](https://img-ask.csdn.net/upload/201707/02/1498963512_692396.png)
  • 请教一下,图中两个search result,如何关联search,计算出来levelcount,search2level符合在search1每条levelfrom to区间里,各几件。![图片]...
  • 关联规则和Apriori算法欢迎使用Markdown编辑器新改变功能快捷键合理创建标题,助于目录生成如何改变文本样式插入链接与图片如何插入一段漂亮代码片生成一个适合你列表创建一个表格设定内容居中、居左...
  • QML中TableView与QAbstractTableModel之间的关联探索起因TabView 示例创建C++模型TableModel功能快捷键合理创建标题,助于目录生成如何改变文本样式插入链接与图片如何插入一段漂亮代码片生成一个适合你...
  • 讲讲你们公司spring cloud 开发中swagger是如何处理时间话麻烦各位大神讲详细点,或者贴一个URL给我,百度多是讲swagger怎么用,项目实战问题讲得很少),我会尽力给各位大神送分。谢谢! ![图片说明...
  • 每一个部门都父部门和子部门,如果部门pid为0话表示为根部门 表结构如下: ![图片说明](https://img-ask.csdn.net/upload/201810/09/1539060641_134045.png) 如上图,当id为1部门pid改为2时...
  • 无限级自关联排序及下拉框展示数据结构部门表 sys_department员工表 sys_staff建表语句功能需求部门排序树状图展示:部门+员工下拉框1:部门下拉框2:部门+员工功能快捷键合理创建标题,助于目录生成如何...
  • android开发者应该都会遇到这样问题,当你在xml文件中定义了一个控件时候,在java代码中获取这个空间id却关联不上,点击无数次保存液不起...另外,在存放图片的文件夹中放入图片的命名需要注意,不能大写字母。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,856
精华内容 742
关键字:

有关联的图片