Apache Spark:BigDataマシン学習


Sparkとは?

  • 大量のデータを処理するフレームワーク
  • データはRDD(Resilient Distributed Dataset)の構造でリストされる.
  • の開発により、データ関連演算を実行し、1台のコンピュータに分散処理を行い、複数のコンピュータで演算を実行できます.
  • Scalable

  • クラスタマネージャは分散処理をサポートします.
  • Hadoop上のYARNは、複数のコンピュータが処理中のタスクを分散処理することを可能にする;
  • Fast

  • DAG Engine(有向無ループ図)により,行動をとる前に最も効率的な処理方法を求め,行動をとる際に最適な結果を得た.
  • Hot

  • は多くの大手企業で使用されています(Amazon、Ebay...)
  • Sparkの構成部品



    Spark Core

  • Spark関数を使用して、様々な動作
  • を実行する.

    Spark Streaming

  • リアルタイムデータ処理
  • Spak SQL

  • SQLクエリ文を使用してデータを処理する
  • MLLib

  • 機械学習ライブラリ.
  • GraphX

  • のグラフィックデータを解析するための
  • RDDs

  • データ構造には、処理するビッグデータが含まれています.
  • 変更不可オブジェクトセット
  • は、結果
  • を計算するために、新しいまたは既存のRDDを変換するか、またはRDDで演算することを示す.

    RDDsの作成

    nums = parallelize([1, 2, 3, 4]) # hard coding된 리스트를 RDD로 생성
    sc.testFile("file:///c:/users/frank/gobs-o-text.txt") # 모든 row를 RDD로 전환(parse)
    # or s3n://--> 아마존 s3 버켓,  hdfs:// --> Hadoop
    hiveCtx = HiveContext(sc) rows = hiveCtx.sql("SELECT name, age FROM users")
    # hive형태의 파일을 부를때 사용. 쿼리문으로 row들을 뽑아올 수 있음
    

    RDD's Transformation


    map, flatmap

  • 入力:RDD→出力:新しいRDD、すべての行が新しい形式で
  • に戻る
  • 平面図→複数行を含むことができ、地図には
  • しか含まれない.
    map()例
    rdd = sc.parallelize([1, 2, 3, 4])
    rdd.map(lambda x:x*x)
    
    # result: 1, 4, 9, 16
  • RDD法は関数をパラメータとする
  • 関数をインライン形式で追加→関数言語と同じ
  • rdd.map(lambda x:x*x)
    # 파라미터를 풀어쓰면 다음과 같다.
    def squareIt(x):
    	return x*x
    rdd.map(squareIt(x))

    filter

  • ブール関数
  • を使用
  • reserve→true:行
  • を保持

    distinct

  • distinct value return
  • sample

  • ランダムサンプリング
  • その他:union,交差,減算,デカルト


    RDD Actions

  • collect, count, countByValue, take, top, reduce, ...
  • Lazy Evalutation
  • の行動を実行するまで、何も起こりません.
  • 最近、データセット(またはDataFrame)構造はRDDよりも人気があります

  • データセットは、RDDよりも
  • 速いデータを予め理解している.
  • MLLibはデータセットをプライマリ構造
  • に変更しています.

    Introduction MLLib


    機械学習用Sparkコンポーネント

    MLLib Capabilities

  • Feature extraction
  • Term Frequence/検索独立ドキュメントFrequence
  • Basic statistics
  • Chi-squared test, Pearson/Spearman correlation, min, max, mean, variance
  • Linear regression, logistic regression
  • Support Vector Machines (SVM)
  • Naive Bayes classifier
  • Decision trees
  • K-Means clustering
  • Principle component analysis, singular value decomposition
  • Recommenations using Alternating Least Squares
  • MLLib special data type


  • Vector
  • 稠密ベクトル:多くの映画では、評価された映画にはデータがあるが、データがない.これらすべての空白データを持つ
  • spase vector:存在するデータのみを格納します.メモリ効率は高いが複雑な

  • LabeledPoint
  • 人が読める意味

  • Rating
  • 商品格付け等の概念
  • Wikipedia検索はspark mllibで実現できます

  • TF: Term Frequency

  • IDF: Inverse Document Frequency
  • TF-IDF


    TF

  • ドキュメント内の単語の出現頻度は何ですか?
  • Document Frecunce:各ドキュメントに何個の単語がありますか?

  • >現在のページにおける単語の重要性を示す指標

    TF-IFは、文書が単語のみで構成されていると仮定する

  • エラー、大文字、などのデータプリプロセッシング
  • スパーク処理
  • を用いる.

    TF-IDFのアルゴリズム(シンプル)


    (1)すべての単語を計算するTF-IF
    (2)与えられた単語のTF-IF値を用いて文書をソートする.
    (3)結果のエクスポート