如何在Spark Table中创建索引?

时间:2016-03-20 05:57:33

标签: indexing apache-spark-sql

我知道Spark Sql与Hive几乎相同。

现在我已经创建了一个表,当我在做Spark sql查询来创建表索引时,它总是给我这个错误:

  

SQL语句中的错误:AnalysisException:创建索引语句中的输入''期望AS接近')'不匹配

test table

我正在使用的Spark sql查询是:

CREATE INDEX word_idx ON TABLE t (id)

id的数据类型是bigint。 在此之前,我还尝试在此表的“word”列上创建表索引,它给了我同样的错误。

那么,无论如何都要通过Spark sql查询创建索引吗?

1 个答案:

答案 0 :(得分:5)

实际上,通过Spark SQL查询无法做到这一点。但是有一个名为RDD的{​​{1}}函数。您可以将zipWithIndex转换为DataFrame,执行RDD,然后将生成的zipWithIndex转换为RDD

请参阅此 community Wiki article 以获得完整的解决方案。

另一种方法可能是使用 的 Spark MLLib String Indexer