Sparkは現在、scala、python、JAVAのプログラミングをサポートしています。
Sparkのネイティブ言語として、scalaはSparkアプリケーションを開発するための***であり、そのエレガントで簡潔なコードは、mapreduceコードの農家の開発を天国のように感じさせます。
SparkはPython用のプログラミングモデルであるPySparkを提供しており、PythonをSparkの開発言語の一つとして利用することができます。現在PySparkは全てのSpark APIをサポートしているわけではありませんが、今後サポートが増えていくと思います。同時に、NOSQL pythonの主要な開発ツールの一つとして、NOSQLとSparkが組み合わされば、今後の開発の展望が想像できます。
Javaについては、時間とエネルギーが許す限り、それを選択します。しかし、長時間座ってコードを書くようなコードライターの場合、ハイキングや友人と会うなどのアクティビティに積極的に参加する必要があります。
くだらないことの後は、Sparkプログラミングの練習です。
1: 開発環境
メインフレームwyy、RAM 16G
hadoop 2.2.0 擬似分散デプロイメント
Spark0.9.0 スタンドアロン スタンドアロン デプロイメント
python2.7.4
scala2.10.3
IntelliJ IDEA 13.1を使用したIDE
2: 実験プロジェクト
2.1: Sogouログデータ分析
実験データソース:
データフォーマットの説明:
アクセス時間 ¦ ユーザID ¦ 検索結果におけるURLの順位 ¦ ユーザのクリック数 ¦ ユーザがクリックしたURL
このうち、ユーザーIDは、ユーザーがブラウザを使用して検索エンジンにアクセスする際に、クッキー情報に従って自動的に割り当てられます。つまり、ブラウザを使用して同時に入力された異なるクエリは、同じユーザーIDに対応します。
上記のデータ形式が正式な表記ですが、実はこのデータセットでは順位と順位番号の間は「分割」ではなく「空間分割」になっています。
A:00:00:00から12:00:00までのユーザーからの照会数
B: 検索結果の数は?しかし、2位のクリック数は?
C: セッション内で最もクエリが多いユーザーのセッションと、それに対応するクエリ数
2.2: 火花蒸し実験
A: A,B,C,D,E,F,Gをランダムに生成し、1秒ごとに1文字ずつ出力するプログラムを書いてください。以下を完成させなさい:
B:最も頻度の高い文字と出現回数を20秒間隔でカウント
C:最初の20秒間で出現回数が最も多い文字、出現回数は10秒間隔でカウント
3: 多言語プログラミングの実装