1. 程式人生 > >spark學習-SparkSQL--09-一些函式的使用

spark學習-SparkSQL--09-一些函式的使用

1。parallelizePairs餘parallelize

/** Distribute a local Scala collection to form an RDD. */
  def parallelizePairs[K, V](list: java.util.List[Tuple2[K, V]], numSlices: Int)
  : JavaPairRDD[K, V] = {
    implicit val ctagK: ClassTag[K] = fakeClassTag
    implicit val ctagV: ClassTag[V] = fakeClassTag
    JavaPairRDD.fromRDD(sc.parallelize(list.asScala, numSlices))
  }

可以原始碼得到 parallelizePairs=======》呼叫===parallelize
parallelize相當於直接拷貝了原始資料(只不過可以平行計算,初學者可以這樣理解)
parallelizePairs相當於直接拷貝了原始資料並且把第一個資料當做key(形成key-value的形式)

2。
subtractByKey
類似於subtrac,刪掉 RDD 中鍵與 other RDD 中的鍵相同的元素

3。
RDD1.join(RDD2)
可以把RDD1,RDD2中的相同的key給連線起來,類似於sql中的join操作

4。
leftOuterJoin
對兩個 RDD 進行連線操作,類似於sql中的左外連線

5。
rightOuterJoin
對兩個 RDD 進行連線操作,類似於sql中的右外連線,存在的話,value用的Some, 不存在用的None,具體的看上面的圖和下面的程式碼即可

6。
ImmutableBytesWritable 是一個16進位制的一個字串,看不懂 String abc=Bytes.toString(key.get());直接這樣轉一下就可以了,因為中文在hbase中是16進位制儲存