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.
Last Article: Scenario Description
Next Article: Scala Sample Code
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.