0

テキスト ファイル (1,000,000 行) に大きなデータがあります。各行には 128 列があります。ここでは、各行が特徴で、各列がディメンションです。

txt ファイルを json 形式に変換し、spark を使用して json ファイルで SQL クエリを実行できるようにしました。
今、私はこの大きなデータで kd ツリーを構築しようとしています。
私の手順:
1)各列の分散を計算し、最大の分散を持つ列を選択し、それをキーの最初のノードとして、列の平均をノードの値として作成します。
2) 最初のノード値に基づいて、データを 2 つの部分に分割し、ポイントに到達するまでプロセスを繰り返します。

私のサンプルコード:

import sqlContext._
val people = sqlContext.jsonFile("siftoutput/")
people.printSchema()
people.registerTempTable("people")
val output = sqlContext.sql("SELECT * From people")

people テーブルには 128 列あります

私の質問:
1) クエリの結果値をリストに保存する方法は?
2) 列の分散を計算する方法は?
3) 同じデータに対して複数のクエリを実行します。spark にはそれを最適化する方法がありますか?
4) 出力をキーと値のペアとしてテキスト ファイルに保存する方法

助けてください

4

0 に答える 0