您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“hive執(zhí)行spark任務(wù)的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“hive執(zhí)行spark任務(wù)的示例分析”這篇文章吧。
public static void main(String[] args) throws Exception{
if (args.length < 1) {
System.err.println(" Usage: JavaWordCount <file> <savepath> ");
System.out.println(" examle: ./bin/spark-submit --name \"WorktrendJob\" "+ "--master spark://192.168.0.61:7077 --executor-memory 1G "
+ "--class et.theme.vis.job.WorktrendJob spark-1.jar "+ "/data/china/china.txt file:///data/china ");
System.exit(1);
}
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
DATE_MATH = sdf.format(new Date());
System.out.println("--------****WorktrendJob*****----------------");
System.out.println("-----------------------------------------------");
System.out.println("-----------spark開(kāi)始計(jì)算------------------------");
//job name
SparkConf sparkConf = new SparkConf().setAppName("MyCustomerJob");
//spark連接
JavaSparkContext ctx = new JavaSparkContext(sparkConf);
//創(chuàng)建hive連接
HiveContext hiveContext = new HiveContext(ctx);
//mysql 配置
Properties connectionProperties = new Properties();
connectionProperties.setProperty("user", MYSQL_USER);
connectionProperties.setProperty("", MYSQL_PASSWORD);
//查詢所有
DataFrame queryall = queryAll(hiveContext,null);
//注冊(cè)臨時(shí)表
queryall.registerTempTable("first");
//查詢臨時(shí)表計(jì)算1
String sql = "";
//查詢 計(jì)算2
String sql1 = "";
//將計(jì)算結(jié)果轉(zhuǎn)化DataFrame
DataFrame sql_a = hiveContext.sql(sql);
DataFrame sql_b = hiveContext.sql(sql1);
// 合并2個(gè)DataFrame 相當(dāng)與 left join
DataFrame join = sql_a.join(sql_b,sql_b.col(DATE_END).equalTo(sql_a.col(DATE_END)),"left_outer");
//在mysql建表
sql_a.write().mode(SaveMode.Append).jdbc(MYSQL_JDBC_URL, "test", connectionProperties);
//關(guān)閉
ctx.stop();
}
public static DataFrame queryAll(HiveContext hiveContext, String arg){
String sql = "";
DataFrame queryAll = hiveContext.sql(sql);
//查詢結(jié)果轉(zhuǎn)化成RDD抽象數(shù)據(jù)集
JavaRDD<WorktrendInfo> name = queryAll.javaRDD().map(new Function<Row, WorktrendInfo>(){
@Override
public WorktrendInfo call(Row v1) throws Exception {
//將RDD抽象數(shù)據(jù)集放入vo.class
CustomerInfo customerInfo = new CustomerInfo();
customerInfo.setCity(v1.getString(0));
return null;//將customerInfo返回
}
});
//將結(jié)果vo轉(zhuǎn)化成DataFrame ~return
DataFrame df = hiveContext.createDataFrame(name, WorktrendInfo.class);
return df;
}
以上是“hive執(zhí)行spark任務(wù)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。