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