import
org.apache.spark.SparkConf;
import
org.apache.spark.api.java.JavaSparkContext;
import
org.apache.spark.sql.DataFrame;
import
org.apache.spark.sql.hive.HiveContext;
public
class
SparkOnHiveDemo {
public
static
void
main(String[] args) {
SparkConf conf =
new
SparkConf().setAppName(
"HiveDataSource"
);
JavaSparkContext sc =
new
JavaSparkContext(conf);
HiveContext hiveContext =
new
HiveContext(sc.sc());
hiveContext.sql(
"DROP TABLE IF EXISTS stars_infos"
);
hiveContext.sql(
"CREATE TABLE IF NOT EXISTS stars_infos(name STRING,age INT) "
+
"row format delimited fields terminated by ','"
);
hiveContext.sql(
"LOAD DATA "
+
"LOCAL INPATH "
+
"'/root/book/stars_infos.txt' "
+
"INTO TABLE stars_infos"
);
hiveContext.sql(
"DROP TABLE IF EXISTS stars_scores"
);
hiveContext.sql(
"CREATE TABLE IF NOT EXISTS stars_scores(name STRING,score INT) "
+
"row format delimited fields terminated by ','"
);
hiveContext.sql(
"LOAD DATA "
+
"LOCAL INPATH "
+
"'/root/book/stars_score.txt' "
+
"INTO TABLE stars_scores"
);
DataFrame superStarDataFrame = hiveContext.sql(
"SELECT si.name,si.age,ss.score "
+
"FROM stars_infos si "
+
"JOIN stars_scores ss ON si.name=ss.name "
+
"WHERE ss.score>=90"
);
hiveContext.sql(
"DROP TABLE IF EXISTS superStar"
);
superStarDataFrame.saveAsTable(
"superStar"
);
hiveContext.table(
"superStar"
).show();
sc.close();
}
}