编辑:这是一个关于Spark 1.2的老问题
为了达到目的,我一直在尝试计算SchemaRDD中字符串列的长度.我正在学习Spark SQL,所以我的问题严格来说是使用Spark或Spark SQL公开的SQL接口,或者了解它们的局限性.
我的第一次尝试就是使用集成的关系查询
notes.select('note).orderBy(length('note))
Run Code Online (Sandbox Code Playgroud)
在编译时没有运气:
error: not found: value length
Run Code Online (Sandbox Code Playgroud)
(这让我想知道在哪里可以找到这个DSL实际上可以解决的"表达式".例如,它为列添加解析了"+".)
然后我试了一下
sql("SELECT note, length(note) as len FROM notes")
Run Code Online (Sandbox Code Playgroud)
这失败了
java.util.NoSuchElementException: key not found: length
Run Code Online (Sandbox Code Playgroud)
(然后我重读了这个(我正在运行1.2.0) http://spark.apache.org/docs/1.2.0/sql-programming-guide.html#supported-hive-features 并想知道Spark SQL是什么意思支持列出的蜂巢功能.)
问题:表达式和/或SQL语句中真正支持的长度运算符是什么?如果是,语法是什么?(奖励:是否有关于Spark SQL Expressions中解决的内容的特定文档,以及一般的语法是什么?)
谢谢!