JavaSQLContext sqlCtx = new JavaSQLContext(ctx); 这个 类在哪个包里面导进去,我在编写 spark sql
package sparkSQL;
import java.util.List;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.examples.sql.JavaSparkSQL.Person;
public class sparkTest {
public static void main(String[] args) {
SparkConf sparkConf = new SparkConf().setAppName("JavaSparkSQL").setMaster("local[2]");
JavaSparkContext ctx = new JavaSparkContext(sparkConf);
JavaSQLContext sqlCtx = new JavaSQLContext(ctx);
JavaRDD people = ctx.textFile("/home/yurnom/people.txt") //文档内容见下文
.map(line -> {
String[] parts = line.split(",");
return new Person(parts[0], Integer.parseInt(parts[1].trim()));//创建一个bean
});
JavaSchemaRDD schemaPeople = sqlCtx.applySchema(people, Person.class);
schemaPeople.registerAsTable("people");//注册为一张table
JavaSchemaRDD teenagers = sqlCtx.sql(//执行sql语句,属性名同bean的属性名
"SELECT name FROM people WHERE age >= 13 AND age <= 19");
List teenagerNames = teenagers
.map(row -> "Name: " + row.getString(0)).collect();
for(String s : teenagerNames) {
System.out.println(s);
}
}
}