2014-12-02 42 views
1

我想使用基于SQL函数的语言集成SQL过滤schemaRDD。例如,我想运行使用语言集成SQL的schemaRDD的SQL函数

SELECT name FROM people WHERE name LIKE '%AHSAN%' AND name regexp '^[A-Z]{20}$' 

我怎样才能people.where使用这些SQL函数()?

参考:

对于语言集成SQL,我下面给here的例子。

val sqlContext = new org.apache.spark.sql.SQLContext(sc) 
import sqlContext._ 
val people: RDD[Person] = ... // An RDD of case class objects, from the first example. 
// The following is the same as 'SELECT name FROM people WHERE age >= 10 AND age <= 19' 
val teenagers = people.where('age >= 10).where('age <= 19).select('name) 
teenagers.map(t => "Name: " + t(0)).collect().foreach(println) 

在此先感谢!

回答

0

您可以使用SQL函数,如数字运算符。例如,

people.where('name like "%AHSAN%").where('name rlike "^[A-Z]{20}$").select('name) 

有是Spark SQL没有regexp但它一样rlike