Scalaを使ってsparkでデータフレームを操作するのは難しいです。一意のエントリの列を抽出するデータフレームがある場合、groupBy
を使用するとデータフレームが返されません。sparkでgroupByを使用してDataFrameに戻す
machine_id | event | other_stuff
34131231 | thing | stuff
83423984 | notathing | notstuff
34131231 | thing | morestuff
と私は、私はいくつかのフィルタリングを行うことができるようにイベントが事の新しいDataFrame
に格納されたユニークなマシンIDを希望:
例えば、私は次の形式を持っているDataFrame
と呼ばれるログを持っていますある種の私が使用するお尻の痛みであるバックグループ化されたデータのヴァルを取得(または私が適切にオブジェクトのこの種を使用する方法がわからない)
val machineId = logs
.where($"event" === "thing")
.select("machine_id")
.groupBy("machine_id")
を使用します。一意のマシンIDのリストを得たので、別のDataFrame
をフィルタリングして個々のマシンIDのすべてのイベントを抽出したいと考えています。
私はかなり定期的にこの種のものをやりたいだろう見ることができますし、基本的なワークフローは次のとおりです。
- ログテーブルからユニークなidを抽出します。
- 固有IDを使用して、特定のIDのすべてのイベントを抽出します。
- 抽出されたこのデータに対して何らかの分析を行います。
これは最初の2つのステップですが、ここではいくつかの指針をお読みいただければ幸いです。
私はこの例がうまくいくと思っていますが、うまくいけば私の問題が何であるかを説明します。 GroupedData
オブジェクトについては十分に分かっていないかもしれませんが、(私が望んでいるように)これは簡単にデータフレームに何かがありません。 Scala 2.10.4上に構築されたspark 1.5を使用しています。
おかげ