原创 Mac集成Python

原創地址:http://blog.justbilt.com/2014/07/02/setup_python_on_mac/ 一. 安裝python mac系統其實自帶了一個python的執行執行環境,用來運行python還行,但

原创 mac上多個jdk版本互相切換

關鍵步驟: 命令:vim ~/.profile 輸入以下內容: #JDK 7 export JAVA_7_HOME=$(/usr/libexec/java_home -v 1.7.0_80) #JDK 8 export JAV

原创 並行方法

總結一下自己常用到的線程池的一些方法: 先看一張結構圖: 轉自:http://www.cnblogs.com/jersey/archive/2011/03/30/2000231.html 1、線程池: java.until

原创 Spark 運行出現java.lang.OutOfMemoryError: Java heap space

具體錯誤如截圖: 主要就是java內存溢出。 之前嘗試過很多方法:/conf中設置spark-java-opts 等,都沒有解決問題。其實問題就是JVM在運行時內存不夠導致。可以通過命令: ./spark-submit -

原创 動態規劃--DP

一、 DP介紹: 動態規劃與分治方法相似,都是通過組合子問題來求解原問題 的解。與之相反,動態規劃應用於子問題重疊的情況,即不同子問題具有公共子問題。而分治方法處理的是互不相同的子問題,遞歸求解子問題再將它們組合起來

原创 scala 單詞計數

在spark中實現單詞計數利用到了map分reduceByKey合的方法,但是scala中沒有reduceByKey的方法,需要我們自行實現,這裏提供兩種方法: 直接上代碼: 一、 scala> import scala.co

原创 Pair RDD行動操作

1、countByKey: 對每個鍵對應的元素分別計數。 scala> val a = Seq((1,2),(3,4),(3,6)) a: Seq[(Int, Int)] = List((1,2), (3,4), (3,6))

原创 RDD行動操作

行動操作是第二種類型的RDD操作,它們會把最終求得的結果返回到驅動器程序中,或者寫入外部存儲系統中。 常見的RDD行動操作: 1. reduce() :它接收一個函數作爲參數,這個函數要操作兩個相同的元素類型的RDD數據並返

原创 java集合框架:

從自己的認識中,總結下java集合框架: 1、Set: 對於HashSet 而言,它是基於HashMap實現的,HashSet底層採用HashMap來保存所有元素,因此HashSet的實現比較簡單。 底層方式:在存放一個元

原创 JAVA編程規範

1、JAVA編程排版: 建議3 文件長度不要超過500行。 2、java編程註釋: 3、JAVA編程變量命名規則: 用static修飾可以保證是靜態變量,用final修飾保證是常量,不

原创 Pair RDD

1、創建Pair RDD 當需要把一個普通的RDD轉爲Pair RDD時,可以用map()函數來實現。例如: scala> val lines = sc.makeRDD(List(("No pains"),("No gains

原创 初識RDD

1、Spark中的RDD就是一個不可變的分佈式對象集合,每個RDD都被分爲多個分區,這些分區運行在集羣中的不同節點上。 2、RDD創建方式: 通過讀取一個外部數據集,textFile方法來構建 scala> val lines

原创 Spark--數據讀取與保存

1、動機 有時候數據量會大到本機可能無法存儲,這時就需要探索別的讀取和保存方法了。 Spark支持很多種輸入源和輸出源。一部分原因是Spark本身是基於Hadoop生態圈二構建的,so spark可以通過Hadoop MapR

原创 RDD分區

1、獲取RDD分區的方式: scala> val rdd = sc.parallelize(Seq((1,2),(3,4),(3,6))) rdd: org.apache.spark.rdd.RDD[(Int, Int)] = P

原创 spark持久化(緩存)

1、惰性求值: RDD轉化過程都是惰性求值的。這意味着在被調用行動操作之前spark不會開始計算,spark會在內部記錄下所要求執行的操作的相關信息,我們可以把每個RDD看作我們通過轉化操作構建出來的、記錄如何計算數據的指定列表