Java Sample Code
Function Description
Collect statistics on female netizens who dwell on online shopping for more than 2 hours on the weekend.
Sample Code
The following code snippets are used as an example. For complete codes, see the com.huawei.bigdata.spark.examples.FemaleInfoCollection class.
SparkConf conf = new SparkConf().setAppName("CollectFemaleInfo"); JavaSparkContext jsc = new JavaSparkContext(conf); SQLContext sqlContext = new org.apache.spark.sql.SQLContext(jsc); // Convert RDD to DataFrame through the implicit conversion. JavaRDD<FemaleInfo> femaleInfoJavaRDD = jsc.textFile(args[0]).map( new Function<String, FemaleInfo>() { @Override public FemaleInfo call(String line) throws Exception { String[] parts = line.split(","); FemaleInfo femaleInfo = new FemaleInfo(); femaleInfo.setName(parts[0]); femaleInfo.setGender(parts[1]); femaleInfo.setStayTime(Integer.parseInt(parts[2].trim())); return femaleInfo; } }); // Register a table. DataFrame schemaFemaleInfo = sqlContext.createDataFrame(femaleInfoJavaRDD,FemaleInfo.class); schemaFemaleInfo.registerTempTable("FemaleInfoTable"); // Execute an SQL query. DataFrame femaleTimeInfo = sqlContext.sql("select * from " + "(select name,sum(stayTime) as totalStayTime from FemaleInfoTable " + "where gender = 'female' group by name )" + " tmp where totalStayTime >120"); // Display the result. List<String> result = femaleTimeInfo.javaRDD().map(new Function<Row, String>() { public String call(Row row) { return row.getString(0) + "," + row.getLong(1); } }).collect(); System.out.println(result); jsc.stop();
For details about the code of other Spark SQL features, visit http://spark.apache.org/docs/latest/sql-programming-guide.html#running-sql-queries-programmatically.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.