爱博体育彩票

深圳爱博体育彩票-爱博体育彩票

網站首頁 > 新聞 > 模具動態

第五周----上課 Hbase shell

2019-10-20 09:11:57 深圳爱博体育彩票-爱博体育彩票 閱讀


image.png


深模


#hbase shell   

  進入 Hbase 的操作界面


- 創建表 :    creat  ‘表名稱’ , ‘列名稱1’,‘列名稱2’,‘列名稱n'

-添加記錄:   put  ’表名稱‘,’行名稱‘,’列名稱‘,’值‘

爱博体育彩票-查看記錄: get '表名稱’,‘行名稱’

-刪除記錄: delete  ‘表名稱’,‘行名稱’,‘列名稱’

-刪除一張表: 分布式數據庫需要多步完成  

                         1、  disable  '表名稱’

                         2、 drop ‘表名稱’

爱博体育彩票-查看所有的記錄:                               scan  ’表名稱‘

-查看某個表,某個列的所有數據:      scan  ’表名稱‘,{’列名稱‘}


一般操作:

1、  啟動 Hbase     #Hbase shell

2、  看有多少內容    > list

3、  看狀態               > status

爱博体育彩票4、  Hbase 的版本    > version

爱博体育彩票5、 要處理增刪改查的操作:

                                                  創建           > create ‘member','member_id','address','info'

爱博体育彩票                                                  查詢           > describe 'member'

     面向列族的,可以添加列族                   > alter 'member','id' 

爱博体育彩票     修改一個列族     > alter 'member',{NAME=>'member_id',method=>'delete'}                     刪除一個列族     > delete 'member' ,' debugo','info:age'  

     查看列的信息     >  get 'member','debugo','info:age'

     刪除整行信息     > deleteall 'member',’debugo‘

     查看整行信息     >  get  ’member','debugo' 

 查看是不是被禁用  >  is_enabled 'menber'

                                     is_disabled 'member'

爱博体育彩票 判斷是不是存在表  > exists 'member'   

爱博体育彩票    刪除表                 >disbale 'member'

                                   drop 'member'


9、插入數據          >  put 'member' ,'debugo','id','11'

                              >  put 'member' ,'debugo','info:age','27'

爱博体育彩票                              > put  'member'.'debugo','info:birthday','1987-04-04'

                              > put  'member'.'debugo','info:industry','it'

                              > put  'member'.'debugo','info:city','beijin'

爱博体育彩票                              .........        表              行            列族:列名稱

                                              表             行            列族:


爱博体育彩票10、 統計行數      > count ‘member’

11、獲取一個ID的所有數據:    > get  'member','sariel'

爱博体育彩票12、查詢 一個ID 的一個列族中的所有信息    > get 'member','sariel','info‘

13、查詢整個表格的所有信息   > scan  ’member'

14、掃描整個列族  scan  ‘member',{column=>'info'}  

爱博体育彩票15、指定掃描整個列            scan  ‘member',{column=>'info:birthday'}


爱博体育彩票對于 Hbase 中的    增                              刪                      改                    查                        統計

爱博体育彩票                           create文件              delete記錄          alter記錄          list文件                  count 

                             put 記錄               disable文件                                  get記錄

                                                           drop文件                                   scan記錄

爱博体育彩票                                                                                                             status系統

                                                                                                            version系統

                                                                                                            describe記錄

爱博体育彩票                                                                                                               exists文件

 

hbase中沒有rename,所以改表名要很復雜,重命名主要通過hbase的快照功能來實現。

-------------------------------------------------------------------------------------------------------------

爱博体育彩票10:30-11:15 休息       這一節: 

爱博体育彩票      下載

scala-2.11.8.msi   jdk-7windowx


安裝  


image.png

JAVA 環境變量設置


image.png



下載軟件, 安裝到C盤   prografile /java  


目前學習 Scala  的軟件, 安裝和配置 


image.png


image.png

image.png


image.png

image.png




爱博体育彩票Spark  的源碼, 全部都是   Scala來寫的。

Scala 也是面對函數的,面對對象的。

爱博体育彩票          java  要寫  200-300行 ,  而 scala 只需要 2行, 也可以調取Java的接口。


Scala 語法 :      


VAL 聲明是不可變的變量,

VAR 聲明是可變的變量。


DOS>      scala> val content:String = "hello world"

爱博体育彩票                           val x,y =100

爱博体育彩票                           不可變的變量。


爱博体育彩票      在 Scala中 一切都可以看作是對象。


爱博体育彩票Scala>     a+b          =======      a.+(b)

爱博体育彩票                1 to 10     =======      1.to(10)                        這里的  。  指的就是對象

                a func b   =======       a.func(b)


                val x = if (a>0) 1 else -1

                val b =if (x>0) 1 esle "error"      這個數據類型不一致, 也可以

爱博体育彩票                邏輯判斷的結果賦值給變量,


                val c = if (x>0) 1 else ()           

 

爱博体育彩票               for (i <- 0  to 5 )  println(i)    這樣就可以打印出來。


               for(i<- 0 unitl 10) println(i)


爱博体育彩票               for (i <- 1 to 3; j<-1 to 3 if  i!=j) {pringtln((10*i+j)+" " }    循環增加條件變量


               for (i<-1 to 10 if i%2==0)yield i


               for (i<-1 to 10)yield i%3


爱博体育彩票--------  下午   

流程控制   

     1、條件判斷      val a = if (x>0) 1 else -1

                               val b = if (x>0) 1 else "error"

                               val c = if (x>0) 1 esle ()

爱博体育彩票      2、for 循環      for (i <- 0 to 5 ) println(i)

                              for  (i <- 0 until 10) println(i)

爱博体育彩票                              for (i <- 0 to 3;j <-1 to 3 if  i != j ){pringln((10*i)+j)+" "}

                              for (i <-1 to 10 if i%2==0)yield i

                              for ( i <-1 to 10) yield i%3

這些是上午學習過的, 接下來,我們學習函數

image.png

          def  fun(x:int):int = X+1            這樣就定義好了函數;

          def fun(a:int,b:int=100)=a+b        默認參數的定義;

          def sum(args : int*)={

                           var result = 0  

                           for (i<-args) result +=i 

                           result

                           }


image.png


爱博体育彩票def fun2 (x:int):unit=(

println(x)


image.png


爱博体育彩票沒有返回值的函數。      

def  fac(n:int):int={if n <=0)1 else n*fac(n-1)

爱博体育彩票  

遞歸函數, 需要指定 輸入的類型  以及 結果的類型。


注意:參數類型必須聲明, 返回值類型可以不聲明, 函數是遞歸的, 這必須聲明返回值類型。


def fac(n:int):int= {

爱博体育彩票      if (n<=0) 1 else n*fac(n-1)

爱博体育彩票      }


爱博体育彩票scala 函數定義規則: 

爱博体育彩票  1、以 def 開頭

  2、參數類型必須指定, 

爱博体育彩票   3、返回值的類型可以不指定。 


沒有定義函數名字的函數, 這是匿名函數

     (x:int)=>x+1

可以將這個沒有名字的函數賦值給一個變量  

val fun = (x:int) => x+1

image.png


接下來, 定義數組 

val  arr1 = new array[int](3)    定長數組

                                                字符串數組

image.png

image.png

可以修改數組中的值

爱博体育彩票arr3(1)="storm"      可以修改數組3種的 1單元的值 


爱博体育彩票變長數組   

image.png

先要做這個 插件引入。

image.png

沒有 new  ,需要括號, 有new , 不需要括號。


image.png


image.png



image.png

 image.png

image.png

image.png


image.png

image.png


增強for循環, 更加簡潔

image.png

image.png


爱博体育彩票通過 yield  賦值給 e

image.png


image.png

爱博体育彩票求和 ,   排序 , 最小值 ,  取值,  



正序

image.png

倒序

image.png



image.png


映射         Key   val      

image.png

image.png

爱博体育彩票兩種方法的映射

image.png



取值:

image.png

image.png



末尾追加

image.png

image.png

刪除

image.png


爱博体育彩票鍵值對的交換   , 得到 鍵和值  KEY -  VAL 的前后交換

image.png

image.png


元組  , 不同類型的元素集合

image.png

image.png


生成大小寫分片元組

image.png


------繼續   , 面向對象的 類的定義


image.png


image.png


重載的構造器image.png


有參和無參的構造器

image.png


接下來講   :object  

爱博体育彩票--------------------------------------------------------------------------

image.png

可以使用 APPLY 實現。

object 對象   與  apply() 方法

image.png

爱博体育彩票這個是  scala實現的 單一模式  

image.png

爱博体育彩票這個是  伴生對象和單例模式結合起來的東西


樣例類和模式匹配 , 這個是 scala獨立的東西, 這個是可以用于模式匹配的。

爱博体育彩票樣例對象是單例的, 也可以用于模式匹配。

爱博体育彩票類似與  java 中  switch-cash 的加強版。

image.png

爱博体育彩票case class user (name: string,psw:string){}

image.png

爱博体育彩票如下方式, 可以用于搜索引擎中,  是比較簡單的

image.png





爱博体育彩票Option(T)類,  理解為一個容器 

image.png

還有一些高級特性, 比如說  高階函數, 等于是函數的函數。 比如:

def fun(f:double =>double)={

f(100)

}

爱博体育彩票fun(X:double)=>28*x

fun(sqrt_)

爱博体育彩票val fun:int => (int,int)={

爱博体育彩票x=>(x,x*2)

}

fun(100)


Val fun:(x:double)=》(double,Int)={

爱博体育彩票(x,y)=>(y,x)

}

image.png

Scala 中特有的  柯里化

image.png

例子:

def  m(x:Int)=(y:int)=>x*y


爱博体育彩票Scala 中還有  隱式轉換和隱式參數


其他:

爱博体育彩票包   的引入    import      , private    都是  Scala的內容





Powered by  ©2008-2019