首页 文章 精选 留言 我的

精选列表

搜索[AI开发],共10000篇文章
优秀的个人博客,低调大师

MapReduce开发技巧

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/50922796 数据类型的选择 自定义数据类型 参考:Hadoop提交作业自定义排序和分组 MapWritable/SortedMapWritable Hadoop中可传输的Map集合,和Java中的Map用法差不多,但是可以用与mapper和reducer之间的数据传输 Map输出不同类型的Value 使用自定义的数据类型继承自GenericWritable可以实现在mapper中输出多个不同类型的value //使用这个数据类型将可以输出IntWritable和Text两种类型的value public class MultiValueWritable extends GenericWritable{ private static Class[] CLASSES = new Class{ IntWritable.class, Text.class } public MultiValueWritable(){ } public MultiValueWritable(Writable value){ set(value); } protected Class[] getTypes(){ return CLASSES; } } mapper中context.write的时候可以使用如下的格式: context.write(key,new MultiValueWritable(new Text("1"))); context.write(key,new MultiValueWritable(IntWritable Text(1))); reducer的Values迭代器中可以通过这种方式来判断value是那种数据类型: Writable value = value.get(); if(value instanceof Text){ ... } 选择合适的InputFormat/OutputFormat 基本上每个InputFormat都会有一个对应的OutputFormat TextInputFormat 默认的输入格式,按行读取,key为每行偏移量,value为行的内容 NLineInputFormat 可以指定一次数据文件多少行的内容: //设置一次读取50行的内容 NLineInputFormat.setNumLinesPerSplit(job,50); SequenceFileInputFormat 输入的格式为keylen,key,valuelen,value,适合用于多个job之间的数据连接 DBInputFormat 处理数据库输入,待使用测试 自定义的InputFormat 参考:自定义分片策略解决大量小文件问题 同时处理不同类型的输入 参考:多个Mapper和Reducer处理多个输入 Partitioner的选择 TotalOrderPartitioner 对所有reducer中的结果进行排序,默认情况下每个reducer中的内容都是各自排序互不影响的 自定义partitioner 参考:Hadoop作业中自定义分区和归约 KeyFieldBasedPartitioner 在分区的时候mapper的key部分会参与计算 配合参数 map.output.key.field.separator num.key.fields.for.partition 指定分隔符和要参与分区的字符索引 例如:key=”name-price”,指定map.output.key.field.separator=”-“,num.key.fields.for.partition=1表示key的price部分参与分区计算 二次排序 setSortComparatorClass map中每个分区调用进行排序,reduce中shuffle之后再次调用 setGroupingComparatorClass 第二次排序,属于同一组的顺序记录并放入同一个value迭代器 分布式缓存的使用 参考:MapReduce中的DistributedCache 作者:@小黑

优秀的个人博客,低调大师

Android开发笔记--Android开发时常用控件(二

MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0 RadioGroup,RadioButton(单选) CheckBox(多选) Toast(像一个遮罩层) 例1,<RadioGroupAndroid:id="@+id/genderGroup" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:orientation="vertical"> <RadioButtonAndroid:id="@+id/female" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="@string/female"/> <RadioButtonAndroid:id="@+id/male" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="@string/male"/> </RadioGroup> 代码:1.控件对象声明 2.取得对象控件 3.设置监听器(只为RadioGroup注册一个) PublicvoidonCheckedChange(RadioGroupgroup,intcheckedId){ If(femaleButton.getId()==checkedId){ System.out.println("Female"); } Elseif(maleButton.getId()==checkedId){ System.out.println("Male"); } } 4.触发事件 //为RadioGroup设置 RadioGroup.setOnCheckedChangeListener(newRadioGroup.OnCheckedChangeListener()) 例2.<CheckBoxandroid:id="@+id/swim" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="@string/swim"/> <CheckBoxandroid:id="@+id/run" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="@string/run"/> <CheckBoxandroid:id="@+id/read" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="@string/read"/> 代码:1.控件对象声明 2.取得对象控件 3.设置监听器(为每一个CheckBox注册监听器) PublicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked){ If(isChecked){ System.out.println("yes"); } Else{ System.out.println("NO"); } } 4.触发事件 CheckBox.setOnCheckedChangeLinstener(newCompoundButton.onCheckedChangeLinstener(){}) 例3.Toast Toast.makeText(this.class,displaystring,messageTime).show() 本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360574,如需转载请自行联系原作者

优秀的个人博客,低调大师

Windows下React Native开发01 -- Android开发环境搭建

1.安装jdk 推荐将JDK的bin目录加入系统PATH环境变量(自己百度下怎么配置)。 2.安装SDK 直接安装Android Studio 推荐从AndroidDevTools下载。(也可以直接安装 android sdk,这里是直接安装的android tools) 1.下载管理工具 一个是安装的、一个是解压版 2.进入SDKManager,确保以下项目已经安装并更新到最新: Tools/Android SDK Tools (24.3.3) Tools/Android SDK Platform-tools (22) Tools/Android SDK Build-tools (23.0.1)(这个必须版本严格匹配23.0.1) Android 6.0 (API 23)/SDK Platform (1) Extras/Android Support Library(23.0.1) Extras/Android Support Repository 国内有墙,有时候会出现获取失败的情况。 更改host文件 host文件在C:\Windows\System32\drivers\etc目录下,在该文件内添加下面两条。域名解析到对应IP上 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com 将Android SDK Manage上的https请求改成http请求 然后在更新。。 3.安装c++环境 (node环境需要) 推荐从itellyou下载并安装Visual Studio 2013或2015 如果使用VS2015,你需要在命令行中设置npm config set msvs_version 2015 --global 4.安装Python 从官网下载并安装python 2.7.x(3.x版本不行) 5.安装node/react-native命令行工具 node直接百度,然后到官网上面下载安装。 从官网下载node.js的官方4.1版本或更高版本。 npm install -g react-native-cli 6.安装git,获取项目 自己百度如何安装git

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册