原创 arrayList擴容內部是怎麼實現的

1、查看ArrayList的add方法,場景假設,一個list長度是10,目前有5個元素 public boolean add(E e) { ensureCapacityInternal(size + 1);

原创 spark算子:RDD的轉化操作groupbykey

scala> var rdd1 = sc.makeRDD(Array(("A",0),("A",2),("B",1),("B",2),("C",1))) rdd1: org.apache.spark.rdd.RDD[(String, I

原创 Java的堆和棧中對象的區別

1、棧中主要存放一些基本類型的變量(int, short, long, byte, float, double, boolean, char)和引用對象。Java中分配堆內存是自動初始化的。 2、Java中所有對象的存儲空間都是在堆中分配

原创 scala中的break和continue

下面2個例子的區別其實就是breakable的範圍大小,在循環外就是break,在循環內就是continue。 import scala.util.control.Breaks._ object HdfsOps { def ma

原创 spark CheckPoint的寫流程源碼分析

Checkpoint 寫數據時序圖:   1、開始checkpoint,即寫入 RDD 到 hdfs 開始 checkpoint 的入口 是在 SparkContext 提交 Job 時(提交 Job 是發生在 RDD 調用 actio

原创 hadoop namenode HA 高可用概念和切換NameNode

1、架構介紹 上圖,加入zookeper集羣,當nn主節點掛掉,通過zk自動將nn副本升級爲主節點。 爲了提供快速故障轉移,備用節點還必須具有關於羣集中塊的位置的最新信息。爲了實現這一點,DataNode配置了所有NameNode的位置

原创 flink狀態管理

State的作用 state是Flink程序某個時刻某個task/operator的狀態,state數據是程序運行中某一時刻數據結果。首先要將state和checkpoint概念區分開,可以理解爲checkpoint是要把state數據持

原创 scala操作hdfs

1、讀取hdfs目錄:hadoop dfs -ls path相當於listStatus的簡寫 //checkpoint目錄是:/user/dmspark/accumulate/checkpoint //e.g. /user/dmspar

原创 RDD、DataFrame和DataSet之間的轉化和異同點

1、轉化原理 RDD關心數據,DataFrame包含結構信息,關心結構,DataSet包含結構和類型信息,關心類型;   ① 將RDD轉換爲DataFrame,需要增加結構信息,所以調用toDF方法,需要增加結構;   ② 將RDD轉換爲

原创 spark on hive & hive on spark的區別

1、Spark on Hive 數據源是:hive,Spark 獲取hive中的數據,然後進行SparkSQL的操作  (hive只是作爲一個spark的數據源)。 spark on hive 是spark 通過spark-sql 使用h

原创 sparkSQL之數據源讀取parquet、json、csv案例

1、讀取parquet數據源 import org.apache.spark.sql.SQLContext import org.apache.spark.{SparkConf, SparkContext} /** * Creat

原创 DataFrame和DataSet的使用案例

1、DateFrame使用案例  import org.apache.spark.sql.{DataFrame, SQLContext} import org.apache.spark.{SparkConf, SparkContext}

原创 sparkSQL之DataFrame創建

1、 SparkSession 是SQLContext和HiveContext的組合; 爲了向後兼容,所以在SQLContext和HiveContext上可用的API在SparkSession上同樣是可以使用的。 SparkSession

原创 hive計算每個月和每週的第一天的count(*)

1、計算每個月的第一天的count(*) select p_day as subDay,count(*) sumCount from t_app_sbd where p_day>=20200201 and substr(p_day,7

原创 @transient作用

java 的transient關鍵字爲我們提供了便利,你只需要實現Serilizable接口,將不需要序列化的屬性前添加關鍵字transient,序列化對象的時候,這個屬性就不會序列化到指定的目的地中。