我知道Spark Sql与Hive几乎相同。
现在我已经创建了一个表,当我在做Spark sql查询来创建表索引时,它总是给我这个错误:
SQL语句中的错误:AnalysisException:创建索引语句中的输入''期望AS接近')'不匹配
我正在使用的Spark sql查询是:
CREATE INDEX word_idx ON TABLE t (id)
id的数据类型是bigint。 在此之前,我还尝试在此表的“word”列上创建表索引,它给了我同样的错误。
那么,无论如何都要通过Spark sql查询创建索引吗?
答案 0 :(得分:5)
实际上,通过Spark SQL查询无法做到这一点。但是有一个名为RDD
的{{1}}函数。您可以将zipWithIndex
转换为DataFrame
,执行RDD
,然后将生成的zipWithIndex
转换为RDD
。
请参阅此 community Wiki article 以获得完整的解决方案。
另一种方法可能是使用 的 Spark MLLib String Indexer 强>