我在文本文件中有大量数据(1,000,000 行)。每行有 128 列。这里每一行是一个特征,每一列是一个维度。
我已经将 txt 文件转换为 json 格式,并且能够使用 spark 对 json 文件运行 sql 查询。
现在我正在尝试用这个大数据构建一个 kd 树。
我的步骤:
1)计算每列的方差选择具有最大方差的列并将其作为关键第一个节点,列的平均值作为节点的值。
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)我将对同一数据运行多个查询。火花有什么方法可以优化它吗?
4)如何将输出保存为文本文件中的键值对?
请帮忙