当前位置: 首页 > 编程日记 > 正文

spark1.4加载mysql数据 创建Dataframe及join操作连接方法问题

首先我们使用新的API方法连接mysql加载数据 创建DF

import org.apache.spark.sql.DataFrame
import org.apache.spark.{SparkContext, SparkConf} 
import org.apache.spark.sql.{SaveMode, DataFrame} 
import scala.collection.mutable.ArrayBuffer 
import org.apache.spark.sql.hive.HiveContext 
import java.sql.DriverManager 
import java.sql.Connection 
val sqlContext = new HiveContext(sc)
val mySQLUrl = "jdbc:mysql://10.180.211.100:3306/appcocdb?user=appcoc&password=Asia123"

val CI_MDA_SYS_TABLE = sqlContext.jdbc(mySQLUrl,"CI_MDA_SYS_TABLE").cache()

val CI_MDA_SYS_TABLE_COLUMN = sqlContext.jdbc(mySQLUrl,"CI_MDA_SYS_TABLE_COLUMN").cache()

val CI_LABEL_EXT_INFO = sqlContext.jdbc(mySQLUrl,"CI_LABEL_EXT_INFO").cache()

val CI_LABEL_INFO = sqlContext.jdbc(mySQLUrl,"CI_LABEL_INFO").cache()

val CI_APPROVE_STATUS = sqlContext.jdbc(mySQLUrl,"CI_APPROVE_STATUS").cache()

val DIM_COC_LABEL_COUNT_RULES = sqlContext.jdbc(mySQLUrl,"DIM_COC_LABEL_COUNT_RULES").cache()

根据多表ID进行关联

val labels = CI_MDA_SYS_TABLE.join(CI_MDA_SYS_TABLE_COLUMN,CI_MDA_SYS_TABLE("TABLE_ID") === CI_MDA_SYS_TABLE_COLUMN("TABLE_ID"),"inner").cache()
labels.join(CI_LABEL_EXT_INFO,CI_MDA_SYS_TABLE_COLUMN("COLUMN_ID") === CI_LABEL_EXT_INFO("COLUMN_ID"),"inner").cache()
labels.join(CI_LABEL_INFO,CI_LABEL_EXT_INFO("LABEL_ID") === CI_LABEL_INFO("LABEL_ID"),"inner").cache()
labels.join(CI_APPROVE_STATUS,CI_LABEL_INFO("LABEL_ID") === CI_APPROVE_STATUS("RESOURCE_ID"),"inner").cache()
labels.filter(CI_APPROVE_STATUS("CURR_APPROVE_STATUS_ID") === 107 and (CI_LABEL_INFO("DATA_STATUS_ID") === 1 || CI_LABEL_INFO("DATA_STATUS_ID") === 2) and (CI_LABEL_EXT_INFO("COUNT_RULES_CODE") isNotNull) and CI_MDA_SYS_TABLE("UPDATE_CYCLE") === 1).cache()

于是噼里啪啦的报错了,在第三个join时找不到ID了,这个问题很诡异。。。:

无奈了。。于是使用官网API spark1.4的指定方法尝试

val labels = CI_MDA_SYS_TABLE.join(CI_MDA_SYS_TABLE_COLUMN,"TABLE_ID")
labels.join(CI_LABEL_EXT_INFO,"COLUMN_ID")
labels.join(CI_LABEL_INFO,"LABEL_ID")
labels.join(CI_APPROVE_STATUS).WHERE($"LABEL_ID"===$"RESOURCE_ID")

于是又噼里啪啦的,还是找不到ID。。。。

最后无奈。。就用原来的方法 创建软连接,加载数据,发现可以。。这我就不明白了。。。

val CI_MDA_SYS_TABLE_DDL = s"""
             CREATE TEMPORARY TABLE CI_MDA_SYS_TABLEUSING org.apache.spark.sql.jdbcOPTIONS (url    '${mySQLUrl}',dbtable     'CI_MDA_SYS_TABLE')""".stripMargin
sqlContext.sql(CI_MDA_SYS_TABLE_DDL)val CI_MDA_SYS_TABLE = sql("SELECT * FROM CI_MDA_SYS_TABLE").cache()//val CI_MDA_SYS_TABLE  = sqlContext.jdbc(mySQLUrl,"CI_MDA_SYS_TABLE").cache()
val CI_MDA_SYS_TABLE_COLUMN_DDL = s"""
            CREATE TEMPORARY TABLE CI_MDA_SYS_TABLE_COLUMNUSING org.apache.spark.sql.jdbcOPTIONS (url    '${mySQLUrl}',dbtable     'CI_MDA_SYS_TABLE_COLUMN')""".stripMargin
sqlContext.sql(CI_MDA_SYS_TABLE_COLUMN_DDL)val CI_MDA_SYS_TABLE_COLUMN = sql("SELECT * FROM CI_MDA_SYS_TABLE_COLUMN").cache()//val CI_MDA_SYS_TABLE_COLUMN  = sqlContext.jdbc(mySQLUrl,"CI_MDA_SYS_TABLE_COLUMN").cache()

.........

最终问题是解决了。。可是 为什么直接加载不行呢。。还有待考究。

附带一个问题的解决 如果啊报这种错误

15/11/19 10:57:12 INFO BlockManagerInfo: Removed broadcast_3_piece0 on cbg6aocdp9:49897 in memory (size: 8.4 KB, free: 1060.3 MB)
15/11/19 10:57:12 INFO BlockManagerInfo: Removed broadcast_3_piece0 on cbg6aocdp5:45978 in memory (size: 8.4 KB, free: 1060.3 MB)
15/11/19 10:57:12 INFO BlockManagerInfo: Removed broadcast_2_piece0 on 10.176.238.11:38968 in memory (size: 8.2 KB, free: 4.7 GB)
15/11/19 10:57:12 INFO BlockManagerInfo: Removed broadcast_2_piece0 on cbg6aocdp4:55199 in memory (size: 8.2 KB, free: 1060.3 MB)
15/11/19 10:57:12 INFO ContextCleaner: Cleaned shuffle 0
15/11/19 10:57:12 INFO BlockManagerInfo: Removed broadcast_1_piece0 on 10.176.238.11:38968 in memory (size: 6.5 KB, free: 4.7 GB)
15/11/19 10:57:12 INFO BlockManagerInfo: Removed broadcast_1_piece0 on cbg6aocdp8:55706 in memory (size: 6.5 KB, free: 1060.3 MB)
TARGET_TABLE_CODE:========================IT03
Exception in thread "main" java.lang.RuntimeException: Error in configuring objectat org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109)at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:75)at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133)at org.apache.spark.rdd.HadoopRDD.getInputFormat(HadoopRDD.scala:190)at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:203)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)at scala.Option.getOrElse(Option.scala:120)at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)at scala.Option.getOrElse(Option.scala:120)at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)at scala.Option.getOrElse(Option.scala:120)at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)at scala.Option.getOrElse(Option.scala:120)at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)at scala.Option.getOrElse(Option.scala:120)at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)at scala.Option.getOrElse(Option.scala:120)at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)at scala.Option.getOrElse(Option.scala:120)at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)at scala.Option.getOrElse(Option.scala:120)at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)at scala.Option.getOrElse(Option.scala:120)at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)at org.apache.spark.sql.execution.SparkPlan.executeTake(SparkPlan.scala:121)at org.apache.spark.sql.execution.Limit.executeCollect(basicOperators.scala:125)at org.apache.spark.sql.DataFrame.collect(DataFrame.scala:1269)at org.apache.spark.sql.DataFrame.head(DataFrame.scala:1203)at org.apache.spark.sql.DataFrame.take(DataFrame.scala:1262)at org.apache.spark.sql.DataFrame.showString(DataFrame.scala:176)at org.apache.spark.sql.DataFrame.show(DataFrame.scala:331)at main.asiainfo.coc.impl.IndexMakerObj$$anonfun$makeIndexsAndLabels$1.apply(IndexMakerObj.scala:218)at main.asiainfo.coc.impl.IndexMakerObj$$anonfun$makeIndexsAndLabels$1.apply(IndexMakerObj.scala:137)at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)at main.asiainfo.coc.impl.IndexMakerObj$.makeIndexsAndLabels(IndexMakerObj.scala:137)at main.asiainfo.coc.CocDss$.main(CocDss.scala:23)at main.asiainfo.coc.CocDss.main(CocDss.scala)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:665)at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:170)at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:193)at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:112)at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:606)at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:106)... 71 more
Caused by: java.lang.IllegalArgumentException: Compression codec com.hadoop.compression.lzo.LzoCodec not found.at org.apache.hadoop.io.compress.CompressionCodecFactory.getCodecClasses(CompressionCodecFactory.java:135)at org.apache.hadoop.io.compress.CompressionCodecFactory.<init>(CompressionCodecFactory.java:175)at org.apache.hadoop.mapred.TextInputFormat.configure(TextInputFormat.java:45)... 76 more
Caused by: java.lang.ClassNotFoundException: Class com.hadoop.compression.lzo.LzoCodec not foundat org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2018)at org.apache.hadoop.io.compress.CompressionCodecFactory.getCodecClasses(CompressionCodecFactory.java:128)... 78 more

一看最后就知道 是hadoop数据压缩格式为lzo spark要想读取 必须引入hadoop lzo的jar包

转载于:https://www.cnblogs.com/yangsy0915/p/4978975.html

相关文章:

新机器学习库TensorFlow Privacy问世:旨在保护敏感数据

在最近的一篇博文中&#xff0c;TensorFlow宣布推出TensorFlow Privacy。这是一个开源库&#xff0c;它允许研究人员和开发人员构建具有强大隐私保护功能的机器学习模型。基于强大的数学确定性&#xff08;mathematical guarantees&#xff09;&#xff0c;使用本库可以确保用户…

HDU 1596 find the safest road (Floyd)

题目链接 本来对弗洛伊德很没信心&#xff0c;1000个城市&#xff0c;还好&#xff0c;还是过了&#xff0c;最裸的有4000ms&#xff0c;因为是无向图加了下优化&#xff0c;3000ms&#xff0c;这个。。。。 #include <stdio.h> #include <string.h> double p[1001…

PHP学习 文件操作函数的应用--简单网络留言模板

1 <?php2 /**3 网络留言板模式4 主要运用到的函数有5 fopen fclose flock fwrite fread explode list6 */7 ?>8 <meta http-equiv"Content-Type" content"text/html;charsetutf-8">9 <?php error_reporting(E_ALL &…

刷过一题之黑魔法师之门

经过了16 个工作日的紧张忙碌&#xff0c;未来的人类终于收集到了足够的能源。然而在与Violet星球的战争中&#xff0c;由于Z 副官的愚蠢&#xff0c;地球的领袖applepi 被邪恶的黑魔法师Vani 囚禁在了Violet 星球。为了重启Nescaf这一宏伟的科技工程&#xff0c;人类派出了一支…

浅谈Javascript事件模拟

事件是用来描述网页中某一特定有趣时刻的&#xff0c;众所周知事件通常是在由用户和浏览器进行 交互时触发&#xff0c;其实不然&#xff0c;通过Javascript可以在任何时间触发特定的事件&#xff0c;并且这些事件与浏览器创建的事件是相同的。这就意味着会有适当的事件冒 泡&a…

程序员成熟的几个标志

转载自&#xff1a;http://blog.csdn.net/linux_loajie/article/details/7698551 程序员成熟的标志 程序员在经历了若干年编程工作之后&#xff0c;很想知道自己水平到底如何&#xff1f;自己是否已经成为成熟的程序员&#xff1f;虽然程序员会对自己有一个自我评价&#xff0c…

云平台屡次停摆,核心系统事故频发?您的运维系统该升级了!

3月3日凌晨&#xff0c;阿里云出现宕机故障&#xff0c;受宕机故障影响&#xff0c;华北不少互联网公司 APP、网站纷纷瘫痪&#xff0c;一大波程序员、运营和运维不得不从被窝里爬起来干活。网友“上海蓝盟网络夏立成”调侃&#xff0c;“阿里云一年一宕机&#xff0c;今年特别…

yii1框架,事务使用方法

Yii1框架事务操作方法如下&#xff1a; $transaction Yii::app()->db->beginTransaction();//创建事务 $transaction->commit();//提交事务 $transaction->rollback();//回滚事务下面使用try&#xff0c;throw&#xff0c;catch配合使用事务&#xff1a; 1 // 以下…

竖直菜单 html,jQuery实现的网页竖向菜单效果代码

本文实例讲述了jQuery实现的网页竖向菜单效果代码。分享给大家供大家参考。具体如下&#xff1a;这是一款基于jQuery实现竖向的网页菜单代码&#xff0c;可折叠展开的二级网页菜单&#xff0c;修改一下可用在后台管理中&#xff0c;显示在左侧的那种管理菜单。jquery加入后方便…

可以检验计算机配置的游戏软件,检测游戏配置的软件-有没有自己检验电脑配置是否符合游戏要求配置 – 手机爱问...

2018-03-28电脑配置是否够好如果楼主你这个配制已经配了的话就没什么好说的了 如果你没配 今天是别人给你写的话 那就千万别配 因为根本是一套垃圾东西 给你介绍一套 CPU&#xff1a;5200 够了 主板&#xff1a;七彩红 770 370 比华硕M2N68 400 NF芯片的划算 还可以组成3A平台 …

Linux实战教学笔记32:企业级Memcached服务应用实践

一&#xff0c; Memcached介绍 1.1 Memcached与常见同类软件对比 &#xff08;1&#xff09;Memcached是什么&#xff1f; Memcached是一个开源的&#xff0c;支持高性能&#xff0c;高并发的分布式内存缓存系统&#xff0c;由C语言编写&#xff0c;总共2000多行代码。从软件名…

嵌入式开发入门(2)

开发平台和硬件设备。我给的只是一种入门知识&#xff0c;具体如何应用请自助思考。所以请不要想着和我搭建同样的硬件平台。你要学习的是入门知识&#xff0c;换个芯片你一样可以这样做。 Ps&#xff1a;如果你想搭建试验平台直接买STM32F103的开发板&#xff0c;淘宝一把一把…

计算机四级网络工程题库,2016计算机四级网络工程师题库

2016计算机四级网络工程师题库一、选择题1、 以下关于OSPF协议技术特征的描述中&#xff0c;哪个是错误的?A.OSPF协议使用层次结构的区域划分B.它将一个自治系统内部划分成若干区域与主干区域(backbone area.C.主干区域连接多个区域&#xff0c;主干区域内部的路由器叫做主干路…

英语计算机作文初中.,初中英语作文:电脑游戏

Computer Games电脑游戏Computer games is a hot topic nowadays. Some people hold that it is bad. And others hold that it is good. In my view, whether good or bad is determined by the players.现在&#xff0c;电脑游戏是一个非常火的话题。一些人认为电脑游戏是不好…

计算机英语缩写AGP,IT行业常用计算机缩略语

IT行业常用计算机缩略语导语&#xff1a;信息技术缩写为IT&#xff0c;是主要用于管理和处理信息所采用的各种技术的总称。下面是YJBYS小编收集整理的IT行业常用计算机缩略语&#xff0c;希望对你有帮助!ADC     Analog-to-Digital Conventer      模数转换器ADO  …

山东计算机类好的民办大学,山东四大坑人学校-山东坑人的民办大学(野鸡大学)...

选择科目测一测我能上哪些大学选择科目领取你的专属报告>选择省份关闭请选择科目确定v>山东省作为高考大省&#xff0c;每年考生的竞争力很大&#xff0c;因此在选择院校的时候更需要考虑清楚。坊间传闻&#xff0c;“山东十大垃圾大学”是非常坑人的&#xff0c;那么山东…

java中数组的一些笔记

数组&#xff08;相同数据类型的集合&#xff09;&#xff1a;是引用数据类型&#xff0c;数组的中的每个元素相当于数组的成员变量int [] num/ int num[]int nums [] new int [5];//创建了数组的对象并且指定了数组的长度。数组的长度一旦指定就不能更改index 下标 索引 从零…

计算机组成 试题,计算机组成典型试题及答案

计算机组成典型试题及答案计算机组成的任务是在指令集系统结构确定分配给硬件系统的功能和概念结构之后,研究各组成部分的内部构造和相互联系&#xff0c;那么计算机组成原理考试考什么呢?下面yjbys小编为大家分析计算机组成原理典型试题及答案如下&#xff1a;1.在计算机内部…

15-11-23:system指令

CMD命令&#xff1a;开始&#xff0d;>运行&#xff0d;>键入cmd或command&#xff08;在命令行里可以看到系统版本、文件系统版本&#xff09; 1. appwiz.cpl&#xff1a;程序和功能 2. calc&#xff1a;启动计算器 3. certmgr.msc&#xff1a;证书管理实用程序 4. c…

J2EE的13种核心技术规范

J2EE主要用于创建可扩展的企业应用&#xff0c;包括13种核心技术规范&#xff1a; 1. JDBC&#xff08;Java Database Connectivity&#xff0c;Java数据库连接&#xff09; JDBC以一种统一的方式对各种各样的数据库进行存取&#xff0c;JDBC定义了4中不同的驱动程序&#xff1…

计算机教师简介50字,教师风采个人简介50字数.docx

教师个人简介 50 字大全例一&#xff1a;大家好&#xff0c;我叫王力央。今年 12 岁了&#xff0c;我有很多的兴趣比如&#xff1a;跳绳、游泳、看书、写字和玩耍。我 喜欢的东西也很多&#xff1a;水果、蔬菜、大螃蟹、大龙虾。大家要多吃蔬菜少吃油炸食品身体才能强壮、健康。…

visio 画类图时 方法里如何加参数

鼠标双击类(打开属性对话框)-->(类别)操作-->属性-->(类别)参数-->(添加参数)转载于:https://www.cnblogs.com/azhqiang/p/4991907.html

获取应用程序路径信息

//应用程序的可执行文件的路径 string apppath Application.ExecutablePath; //指定路径字符串的父目录信息,即当前目录的上一级目录 string str Path.GetDirectoryName(apppath); //指定路径字符串的扩展名 string …

jquery实现返回顶部按钮和scroll滚动功能[带动画效果] 转载

转载自&#xff1a;老驴的博客 jQuery脚本&#xff1a; 1 <script type"text/javascript">2 $(function() {3 var scrollDiv document.createElement(div);4 $(scrollDiv).attr(id, toTop).html(^ 返回顶部).appendTo(body);…

海思涵科技WIFI认证服务器不在线,在海思平台外加一个usb wifi模块,mt7601 加载ok,配置网络ok,但不能ping通?...

请教下&#xff1a;我用mt7601 usb wifi模块加载驱动 配置网络后经常打印PeerBeaconAtJoinAction(): Set CentralChannel1PeerBeaconAtJoinAction(): HT-CtrlChannel5, CentralChannel>5PeerBeaconAtJoinAction(): Set CentralChannel5PeerBeaconAtJoinAction(): HT-CtrlCha…

关于ognl+struts-tag与el+jstl互相代替,以及el和jstl的学习笔记

昨晚在晚上看了许多文章&#xff0c;众多大牛说OGNL性能不行云云&#xff0c;乍一看似乎惨不忍睹&#xff0c;如下图&#xff1a; 于是考虑是否能使用ELJSTL代替实现前台的标签。 以最近测试用的简单留言板的查看文章页面为例&#xff0c;以下皆省略getter&#xff0c;setter方…

六年级计算机word处理,六年级上信息技术教案Word大变身用Word制作网页河大版

《六年级上信息技术教案Word大变身用Word制作网页河大版》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《六年级上信息技术教案Word大变身用Word制作网页河大版(2页珍藏版)》请在人人文库网上搜索。1、第 1 课 Word 大变身用 Word 制作网页教学内容&#xff1a;教学目…

android4.4 添加快捷开关(以截屏为例)

A&#xff0c;frameworks\base\packages\SystemUI\res\values\config.xml 添加&#xff1a; <bool name"quick_settings_show_screenshot">true</bool> B&#xff0c;frameworks\base\packages\SystemUI\res\values\strings.xml 添加&#xff1a;<str…

两台ubuntu虚拟机环境下hadoop安装配置

http://blog.itpub.net/26978437/viewspace-730136/按照上几篇的内容&#xff0c;安装好两台ubuntu虚拟机之后&#xff0c;首先确定好哪台机子做namenode&#xff0c;哪台做datanode&#xff0c;打开终端,输入&#xff1a;$sudo vi /etc/hosts 在打开的文件中输入主机名和IP地址…

记录程序运行时间

long currentTimeMills()返回以毫秒为单位的当前时间 long nanoTime() 返回最准确的可用系统计时器的当前值&#xff0c;以毫微秒为单位. 测试某些代码执行的时间长度&#xff1a; long startTime System.nanoTime();// ... the code being measured ...long estimatedTime S…