Indexing 如何在Spark表中创建索引?
我知道Spark Sql几乎和Hive一样 现在我已经创建了一个表,当我执行Spark sql查询来创建表索引时,它总是给我以下错误: SQL语句中出错:AnalysisException:create index语句中不匹配的输入“”应与“')相近 我使用的Spark sql查询是:Indexing 如何在Spark表中创建索引?,indexing,apache-spark-sql,Indexing,Apache Spark Sql,我知道Spark Sql几乎和Hive一样 现在我已经创建了一个表,当我执行Spark sql查询来创建表索引时,它总是给我以下错误: SQL语句中出错:AnalysisException:create index语句中不匹配的输入“”应与“')相近 我使用的Spark sql查询是: CREATE INDEX word_idx ON TABLE t (id) id的数据类型为bigint。 在此之前,我还尝试在这个表的“word”列上创建表索引,它给了我相同的错误 那么,有没有办法通过Sp
CREATE INDEX word_idx ON TABLE t (id)
id的数据类型为bigint。
在此之前,我还尝试在这个表的“word”列上创建表索引,它给了我相同的错误
那么,有没有办法通过Spark sql查询创建索引?实际上,没有办法通过Spark sql查询创建索引。但是有一个名为zipWithIndex的
RDD
函数。您可以将数据帧
转换为RDD
,执行zipWithIndex
,并将生成的RDD
转换回数据帧
有关完整的解决方案,请参见此
另一种方法是使用
是的,我在一些RDD上使用zipWithIndex,但对于这一个,我需要在特定列上创建索引,zipWithIndex不是很方便。是的,我需要先分离数据,使用zipWithIndex,然后加入。我想知道是否有一种更简单的方法。也许可以看看
mLib
StringIndexer
?如果不需要按顺序排列ID,可以单调递增地查看ID()