我在文本文件中有大量数据(1,000,000行)。每行有128列。 这里每一行都是一个特征,每列都是一个维度。
我已经转换了json格式的txt文件,并能够使用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")
人员表有128列
我的问题:
1)如何将查询的结果值保存到列表中?
2)如何计算列的方差?
3)我将对同一数据运行多次查询。是否有什么方法可以优化它?
4)如何将输出保存为文本文件中的键值对?
请帮助