原创 Spark系列 —— Spark轉化JSON數據爲Dataset(DataFrame)
JSON轉DataFrame 在日常使用Spark處理數據時, 半結構化的JSON數據(JSONObject, JSONArray)可能是最常見的一種數據結構,那麼能熟練並快速地處理JSON格式數據應該是數據開發人員的必備技能
原创 Spark系列 —— Spark內存管理
Spark1.6.0版本之前提供的是靜態內存管理,實現類StaticMemoryManager; Spark1.6.0版本及之後默認的是統一內存管理,實現類是UnifiedMemoryManager。 不管是靜態內存管理還是統
原创 數據倉庫架構、維度數據建模、雪花模型和星型模型
在GeeksforGeeks上看到了幾篇關於數據倉庫架構、維度數據建模的文章,進行翻譯整理並加入了一些自己的理解,輸出了這篇文章。 一、數據倉庫架構 數據倉庫是將不同來源的數據在統一的模式下組織起來的異構集合。構建數據倉庫有兩種方
原创 流處理Spark Streaming和Flink中的back pressure(背壓)
什麼是背壓 在流處理系統中,出現下游消費者消費數據的速率跟不上上游生產者生產數據的速率的情況,就叫做背壓。 Spark Streaming中的背壓 在Spark 1.5之前,流應用程序如果因爲資源不足導致處理數據的速度跟不上接
原创 Spark寫MySQL字段數據類型被覆蓋問題
問題背景 經過Spark處理之後的數據,需要寫到MySQL在web頁面進行展示。 遇到的問題 因爲考慮到寫入MySQL中的字段類型,需要提前在MySQL創建好對應的表。並通過JDBC將DataFrame中的內容寫入到MySQL
原创 Spark系列 —— Spark整合讀寫HBase、Phoenix
HBase作爲一種可以進行海量數據存儲、並進行高性能讀寫的NoSQL數據庫,在大數據中有着廣泛的引用,而Spark作爲常用的大數據計算引擎,需要訪問存儲HBase中的海量數據進行分析處理。那麼Spark如何整合HBase來加載HB
原创 Spark Dataframe轉化成HashMap
既然是要將Dataframe轉化成HashMap, 那麼爲什麼要把Dataframe轉化成HashMap? 使用場景是什麼? 需求 現在有一個json串"{‘address’:[[‘33’,‘3301’,‘330108’],‘xx
原创 數據結構與算法 —— 鏈表:環形鏈表、反轉鏈表、合併兩個有序鏈表(Java實現)
定義一個單鏈表 ListNode爲下文代碼中用到的類。 class ListNode { int val; ListNode next; public ListNode(int x) {
原创 Spark系列 —— 將DataFrame中所有列轉換成其他類型(String字符串類型)
應用場景 當需要把DataFrame中所有列的類型轉換成另外一種類型,並且這個DataFrame中字段很多,一個一個地轉換要寫很多冗餘代碼的時候,就可以使用如下這兩種轉換方式。 方法一 代碼如下 import org.ap
原创 Spark系列 —— Spark並行讀jdbc(MySQL)
Spark API提供了兩種並行讀MySQL的方式。 1. 基於整型列設置並行度 先上代碼,對着代碼再做詳細的解釋: def readByIntegralColumn(spark: SparkSession): Unit =
原创 Hadoop/HDFS常用命令 (FileSystem Shell)
概述 文件系統(FS)shell包含了一系列的與shell相似的命令,很多都對應着Unix中的命令,這些命令可以直接與Hadoop分佈式文件系統(HDFS)以及Hadoop支持的其他文件系統,如本地FS、HFTP、S3等進行交互。
原创 pip install sasl安裝報錯 —— "Microsoft Visual C++ 14.0 is required"
問題背景 這個問題是在Windows7上安裝pyhive時遇到的。因爲安裝 pyhive 要依賴 sasl 模塊,在 pip install sasl 時報了這樣一個 “缺少Microsoft Visual C++編譯器”
原创 Spark系列 —— pyspark中遇到的坑 (持續更新)
1. 模塊依賴問題 因爲平時寫Spark應用程序基本都用Scala,之前有寫過一段pyspark,但是都是在一個類或模塊中實現所有的功能,也就自然沒有遇到過要在一個模塊中導入(import)自己寫的另一個模塊。這次遇到了,也發現了
原创 Spark系列 —— 單詞統計WordCount (Scala/Python/Java)
入門Spark的第一個小例子就是編寫一個簡單的WordCount程序,來統計一個文件中每個單詞的個數。接下來分別是用Scala、Python和Java三種語言來實現WordCount的代碼,都是基於Spark2.0+版本和本地
原创 Spark本地(local模式)連接Hive(Scala/Python)
很多時候,我們在編寫好Spark應用程序之後,想要讀取Hive表測試一下,但又不想操作 (打jar包——>上傳集羣——>spark-submit) 這些步驟時,那我們就可以在本地直連Hive,直接運行你的Spark應用程序中的ma